在Groovy中加入Thread

时间:2013-01-16 23:58:31

标签: multithreading concurrency groovy

join方法有什么作用?
如:

def thread = Thread.start { println "new thread" }
thread.join()

即使没有join语句,此代码也能正常工作。

1 个答案:

答案 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