これが状況です。2 つの子スレッドを作成するアプリケーションがあります。ChildThread1 に対して Join メソッドを呼び出すと、MainThread はこの結合操作を待機しています。凍っている。しかし、これはポイントではありません。期待されています。ポイントは、この操作で ChildThread2 がどのように影響したかです。この操作を待つか、正常に実行しますか? ありがとう。
質問する
289 次
2 に答える
2
ChildThread2 は影響を受けません。
さて、それがバックグラウンド スレッドであり、終了する前にJoin
が最後にMain
行うことである場合、それは を殺しChildThread2
ますが、これはそれ自体とは何の関係もありませんが、Join
すべての非バックグラウンド スレッドが終了すると、アプリケーションがシャットダウンし、すべてのバックグラウンド スレッドが強制終了されます。
バックグラウンド スレッドでない場合、これは当てはまりません。メイン スレッドが終了し (メイン スレッドが待機していChildThread1
たJoin
ため)、次に生成された 2 番目のスレッドが終了するか、2 番目に生成されたスレッドが既に終了しています。 、そしてそれらがすべて終了すると、アプリケーションは終了します。
Join
すでに終了しているスレッドにアクセスしようとすると、 への呼び出しJoin
がすぐに返されることに注意してください。したがって、スレッドを 2 つ以上のスレッドで待機させたいが、それらの順序を予測できない場合は、一方を待機してから他方を待機してもまったく問題ありません。
于 2012-08-26T12:33:44.403 に答える
1
ChildThread2
完了するか中止されるまで実行を続けます。
于 2012-08-26T12:15:36.870 に答える