84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
Thread.currentThread()는 현재 프로그램이 실행 중인 스레드를 반환하지 않고, Thread.currentThread() 코드가 실행되는 스레드를 반환합니다.
따라서 새 스레드가 생성되면 코드는 메인 스레드에서 실행되고, run 메서드의 코드는 스레드에서 실행되는 것을 볼 수 있습니다.
출력물을 보면 이해하기 쉽습니다
1. new이 Thread 객체인 경우 기본 이름은 Thread-n 소스 코드를 보면 알 수 있습니다. Thread2. 스레드 객체입니다. 이렇게 사용하면 현재 스레드입니다. this3. 은 항상 현재 실행 중인 스레드를 반환합니다. Thread.currentThread()
new
Thread
Thread-n
this
Thread.currentThread()
생성자 메서드의 실행 결과는 이해가 되지만 왜 setName의 testThread가 아닌 스레드의 run 메서드 실행 결과가 나오는 걸까요?
1. getName() 메서드는 Thread 클래스에서 상속됩니다. Thread 클래스의 getName() 메서드를 살펴보세요.
2. 예 3. 예 생성자에서는 Thread.currentThread()가 메인 스레드이고, run 메서드의 Thread.currentThread()가 현재 스레드입니다
Thread.currentThread()는 현재 프로그램이 실행 중인 스레드를 반환하지 않고, Thread.currentThread() 코드가 실행되는 스레드를 반환합니다.
따라서 새 스레드가 생성되면 코드는 메인 스레드에서 실행되고, run 메서드의 코드는 스레드에서 실행되는 것을 볼 수 있습니다.
출력물을 보면 이해하기 쉽습니다
1.
new
이Thread
객체인 경우 기본 이름은Thread-n
소스 코드를 보면 알 수 있습니다.Thread
2. 스레드 객체입니다.이렇게 사용하면 현재 스레드입니다.
this
3.은 항상 현재 실행 중인 스레드를 반환합니다.
Thread.currentThread()
생성자 메서드의 실행 결과는 이해가 되지만 왜 setName의 testThread가 아닌 스레드의 run 메서드 실행 결과가 나오는 걸까요?
1. getName() 메서드는 Thread 클래스에서 상속됩니다. Thread 클래스의 getName() 메서드를 살펴보세요.
으아악2. 예
3. 예
생성자에서는 Thread.currentThread()가 메인 스레드이고, run 메서드의 Thread.currentThread()가 현재 스레드입니다