2

だから私はいくつかのコードを持っています、私はいくつかのコードを実行するメインスレッドで6つのスレッドを作成しています。スレッドを開始します。次に、スレッドを呼び出しjoin()て、メイン スレッドが実行を続行する前にすべてのスレッドが終了するのを待機するようにします。

現在、コードの実行にかかる時間を測定するために、非常に基本的でおそらく不正確な方法を使用しています。開始時と終了時にシステム時刻を取得するために呼び出して、差を出力するだけです。

たとえば、すべてのコードを実行するのに約 500 ミリ秒かかるとしましょう。

各スレッドの呼び出しを削除することに決めjoin()、代わりに、メイン スレッドに 20 ミリ秒スリープするように指示しました。これにより、私のコードは約 200 ミリ秒で終了し、メイン スレッドはワーカー スレッドからの適切なデータを使用して実行を継続できました。つまり、6 つのワーカー スレッドはその 20 ミリ秒の待機で終了したに違いありません。

そのため、各ワーカー スレッドで .join を使用すると、時間がかかるのはなぜですか? 当然、メイン メソッドで への呼び出しを保持することはできず、代わりにのsleep(20)ようなものを使用します。join()

4

2 に答える 2