これが状況です。2 つの子スレッドを作成するアプリケーションがあります。ChildThread1 に対して Join メソッドを呼び出すと、MainThread はこの結合操作を待機しています。凍っている。しかし、これはポイントではありません。期待されています。ポイントは、この操作で ChildThread2 がどのように影響したかです。この操作を待つか、正常に実行しますか? ありがとう。
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 に答える