次のコードを検討してください。
class ThreadJoinTest{
public static void main(String[] arguments){
TimeUnit unit;
final Thread taskThread = new Thread(task);
taskThread.start();
taskThread.join(unit.millis(timeout));
}
}
それで、メインスレッドがtaskThread.join()タイムアウト値で行を実行するとき、メインスレッドはtaskThreadそのタスクを完了するための十分な時間を与えていますか?これが結合メソッドの主な目的ですか?
次の場合はどうなりますか?
taskThreadタイムアウト期間の前に実行を終了しますか?- タイムアウトに達したが
taskThread実行が終了していない場合はどうなりますか?taskThreadタスクを完了するチャンスはありますか? taskThreadメインスレッドは、正常に終了したため、またはタイムアウトに達したために結合が返されたことをどのように認識しますか?