2013-01-11 63 views
-1

我不明白爲什麼這隻打印2個活動線程。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()); 

我Worker類是寫喜歡你的:

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

線程需要時間來啓動並執行。當前線程不會停止並等待它們啓動。這意味着在打印該消息時您可能看不到任何線索。

注意:線程的整個目的是儘可能獨立運行代碼。除非您明確編寫了代碼來保證這一點,否則您無法對事情發生的順序進行假設。