join
方法有什么作用?
如:
def thread = Thread.start { println "new thread" }
thread.join()
即使没有join
语句,此代码也能正常工作。
答案 0 :(得分:22)
与Java中的相同 - 它导致调用 join
的线程阻塞,直到由Thread
对象表示的线程join
被叫终止了。
如果您在生成新线程后让主线程执行其他操作(例如println
),则可以看到区别。
def thread = Thread.start {
sleep(2000)
println "new thread"
}
//thread.join()
println "old thread"
如果没有join
这个println可能会在另一个线程仍在运行时发生,那么您将获得old thread
,然后在两秒后由new thread
获得。使用join
主线程必须等到另一个线程完成,因此您将在两秒钟内得不到任何内容,然后new thread
,然后old thread
。