2013-01-16 21 views

Trả lời

18

Cùng giống như trong Java - nó gây ra các chủ đề mà gọijoin để chặn cho đến khi thread đại diện bởi các đối tượng Threadjoin được gọi là đã chấm dứt.

Bạn có thể thấy sự khác biệt nếu bạn tạo chuỗi chính làm điều gì đó khác (ví dụ: println) sau khi sinh ra chuỗi mới.

def thread = Thread.start { 
    sleep(2000) 
    println "new thread" 
} 
//thread.join() 
println "old thread" 

Nếu không có sự join println này có thể xảy ra trong khi thread khác vẫn chạy, vì vậy bạn sẽ nhận được old thread, sau hai giây sau bởi new thread. Với join, chủ đề chính phải đợi cho đến khi chủ đề khác hoàn tất, vì vậy bạn sẽ không nhận được gì trong hai giây, sau đó là new thread, sau đó old thread.

+0

Vì vậy, programm sẽ không làm bất cứ điều gì, cho đến khi 'thread' đã hoàn thành? – user1170330

+0

@ user1170330 Tôi đã thêm một chút ví dụ. –

+0

Cảm ơn bạn rất nhiều! – user1170330

Các vấn đề liên quan