マルチスレッドのJavaプログラムでは、スレッドオブジェクトTがインスタンス化され、スレッドが開始される前にT.join()が呼び出された場合はどうなりますか?別のスレッドがT.join()を呼び出す前後にTがインスタンス化された後、いつでもT.start()を呼び出すことができると仮定します。ターゲットがまだ起動していない場合のJavaでのThread.join()の動作は何ですか?
T.join()がT.start()より前に呼び出され、T.join()を呼び出すスレッドがハングするという問題があると思うからです。
はい、私はいくつかの設計上の問題があると知っていますが、これを修正すれば、これは問題にならない可能性があります。しかし、Java APIのドキュメントでは「このスレッドが終了するのを待つ」という唯一のことがあるので、join()動作の詳細を知りたいと思います。
お試しください。別の簡単なプロジェクトを作り、何が起こるかを見てください。 – BeemerGuy
BeemerGuy:たぶん、ある時点で、しかし、私は試行錯誤だけで舞台裏で起こっていることを完全に照らすとは確信していません。他の誰かがすでに知っている可能性があり、時間を節約することができます。 – DGH