2009-11-07 5 views
6

나는 run() 메서드가 1000ms 동안 잠자기 상태 인 클래스가 있고 "Thread"를 출력합니다. 그리고 나서 내 메인 프로그램에서이 스레드를 시작한 다음 내 메인 프로그램을 즉시 2000ms 동안 잠자기 상태로 만든 다음 "주 스레드"를 인쇄하십시오.Java 동시성에 대한 개념적 질문

스레드가 주 스레드보다 먼저 인쇄되도록 보장됩니까?

답변

16

아니요. 개념적으로는 이 가능합니다. 실행중인 시스템이 너무 바빠서 새 스레드가 실행될 기회가 없기 때문에 아무 것도 주 스레드가 잠자기 및 "주 스레드"를 인쇄하기 전에 실행해야합니다. . 실제로는 그럴 가능성은 희박하지만, 근본적으로 sleep이 아니라 코디네이 티브 프리미티브입니다.

+0

+1 : 잠은 전혀 보장되지 않습니다. 그것은 중단 될 수 있기 때문에 요청한 시간 동안 잠을 자지 못할 수도 있습니다. –

+0

이 경우 두 메시지 중 하나가 전혀 인쇄되지 않을 수도 있습니다. ;) –

관련 문제