2013-01-11 2 views
-1

이 인쇄만으로 스레드가 활성화되는 이유를 알 수 없습니다. 내 작업자 클래스가 작성Java, 스레드가 시작되지 않음

/* worker from the example */ 
for(int i = 0 ; i < 4 ; ++i){ 
    Worker worker = new Worker(articles, factory); 
    worker.start(); 
    workers.add(worker);    
}  

System.out.println("Number of active threads : " + Worker.activeCount()); 

이을 추천했습니다 :

class Worker extends Thread{} 
+2

전체 코드를 알려주세요. – Swapnil

+2

'Worker.activeCount()'메서드는 무엇입니까? 'Worker'의 전체 코드를 보여주세요 – Andremoniy

+0

다음은 완전한 코드입니다 : http://paste.debian.net/223666/ activeCount는 스레드 클래스의 표준 메소드입니다 : http://www.java2s.com/Code/ JavaAPI/java.lang/ThreadactiveCount.htm – Touki

답변

4

스레드 시작하고 실행하는 데 시간이 걸릴. 현재 쓰레드는 멈추지 않고 시작하기를 기다린다. 즉, 해당 메시지를 인쇄 할 때까지 스레드가 시작되지 않을 수도 있습니다.

참고 : 스레드의 모든 목적은 코드를 가능한 한 독립적으로 실행하는 것입니다. 이를 보장하기 위해 명시 적으로 코드를 작성하지 않으면 상황이 일어나는 순서에 대해 가정 할 수 없습니다.

관련 문제