0

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

4

2 に答える 2

2

ChildThread2 は影響を受けません。

さて、それがバックグラウンド スレッドであり、終了する前にJoinが最後にMain行うことである場合、それは を殺しChildThread2ますが、これはそれ自体とは何の関係もありませんが、Join すべての非バックグラウンド スレッドが終了すると、アプリケーションがシャットダウンし、すべてのバックグラウンド スレッドが強制終了されます。

バックグラウンド スレッドでない場合、これは当てはまりません。メイン スレッドが終了し (メイン スレッドが待機していChildThread1Joinため)、次に生成された 2 番目のスレッドが終了するか、2 番目に生成されたスレッドが既に終了しています。 、そしてそれらがすべて終了すると、アプリケーションは終了します。

Joinすでに終了しているスレッドにアクセスしようとすると、 への呼び出しJoin がすぐに返されることに注意してください。したがって、スレッドを 2 つ以上のスレッドで待機させたいが、それらの順序を予測できない場合は、一方を待機してから他方を待機してもまったく問題ありません。

于 2012-08-26T12:33:44.403 に答える
1

ChildThread2完了するか中止されるまで実行を続けます。

于 2012-08-26T12:15:36.870 に答える