-2
スレッドについて学びたいと思っています。 以下をご覧くださいTAE -どのスレッドがその行を呼び出していますか?
public static void main(String [] args) { // line 1
Thread exampleThread = new Thread() { // line 2
public void run() { // line 3
//some code // line 4
........... // line 5
........... // line 6
} // line 7
}; // line 8
// line 9
// Which thread invokes this line? // line 10
exampleThread.start(); // line 11
// line 12
// Which thread invokes this line? // line 13
exampleThread.join(); // line 14
} // line 15
私はメインスレッドがライン11を呼び出すと思います。
しかし、何について行14?どのスレッドが呼び出していますか? メインまたは例スレッド?説明していただけますか?
両方とも同じ '呼び出し側'スレッドである。呼び出しスレッドはexampleThreadを開始し、joinを呼び出すと呼び出しが完了するまで待機します。exampleThreadが完了するまで呼び出しスレッドをブロックしています。スレッドを開始する前にシステム時間を印刷して、次にスレッドのロジックを2秒間スリープさせ、最後にもう一度タイムアウトを表示すると、すぐに戻ることなく2秒間ブロックされた呼び出しスレッドが表示されるはずですと呼ばれていました。 –