メソッドは何をしjoin
ますか?
のように:
def thread = Thread.start { println "new thread" }
thread.join()
このコードは、join
ステートメントがなくても正常に機能します。
メソッドは何をしjoin
ますか?
のように:
def thread = Thread.start { println "new thread" }
thread.join()
このコードは、join
ステートメントがなくても正常に機能します。
Javaの場合と同じように、呼び出されたオブジェクトによって表されるスレッドが終了するまで、呼び出さ れたスレッドがブロックされます。join
Thread
join
println
新しいスレッドを生成した後にメインスレッドに何か他のこと(たとえば)を実行させると、違いがわかります。
def thread = Thread.start {
sleep(2000)
println "new thread"
}
//thread.join()
println "old thread"
このprintlnがないjoin
と、他のスレッドがまだ実行されている間に発生する可能性があるためold thread
、2秒後に。が続きますnew thread
。メインスレッドではjoin
、他のスレッドが終了するまで待機する必要があるため、2秒間何も取得されないため、次にnew thread
、old thread
。