언어(Language)/Java
[Java] 자바 스레드(Thread) 이름 조회 및 설정하기
잇트루
2022. 9. 29. 04:00
반응형
스레드 이름
메인 메서드의 소스 코드를 읽는 메인 스레드는 “main”이라는 이름을 가지고 있다.
추가적으로 생성한 스레드는 기본적으로 “Thread-n”이라는 이름을 가진다. (n은 0부터 스레드의 개수만큼 증가하여 명명)
이러한 스레드의 이름을 조회하거나 생성한 스레드의 이름을 설정할 수 있다.
스레드 이름 조회
스레드의 이름을 조회하는 방법은 다음과 같다.
// 스레드의 참조변수 이름.getName()
System.out.println(thread.getName());
스레드의 이름 조회 예제
public class ThreadName {
public static void main(String[] args) {
// Runnable 익명 구현 객체
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("thread1 실행");
}
});
thread1.start();
// thread1 이름 조회
System.out.println("이름: " + thread1.getName());
// Thread 익명 하위 객체
Thread thread2 = new Thread() {
public void run() {
System.out.println("thread2 실행");
}
};
thread2.start();
// thread2 이름 조회
System.out.println("이름: " + thread2.getName());
}
}
// 출력
thread1 실행
이름: Thread-0
thread2 실행
이름: Thread-1
스레드 이름 설정
스레드의 이름을 설정하는 방법은 다음과 같다.
// 스레드의 참조변수이름.setName("설정할 이름");
thread.setName("New Thread");
스레드 이름 설정 예제
public class ThreadName2 {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("thread1 실행");
}
});
thread.start();
// thread 이름 조회
System.out.println("이름: " + thread.getName());
// thread 이름 설정
thread.setName("New Thread");
// 스레드 이름 다시 조회
System.out.println("이름: " + thread.getName());
}
}
// 출력
thread1 실행
이름: Thread-0
이름: New Thread
실행 중인 스레드 인스턴스의 주소 값 얻기
만약, 실행 중인 스레드의 주소 값을 사용해야 하는 상황이 발생한다면, Thread 클래스의 정적 메서드인 currentThread() 메서드를 사용하여 실행 중인 스레드의 주소 값을 얻는다.
public class ThreadEx3 {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()); // Thread-0
}
});
thread.start();
System.out.println(Thread.currentThread().getName()); // main
}
}
// 출력
main
Thread-0
반응형