-1

これが2つのアクティブスレッドのみを出力する理由がわかりません。

/* 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{}
4

1 に答える 1

4

スレッドの開始と実行には時間がかかります。現在のスレッドは停止せず、開始するのを待ちます。これは、そのメッセージを印刷するまでにスレッドが開始されない可能性があることを意味します。

注:スレッドの全体的な目的は、コードを可能な限り独立して実行することです。これを保証するコードを明示的に記述しない限り、物事が発生する順序について推測することはできません。

于 2013-01-11T10:24:36.580 に答える