Phương pháp join
làm gì?
Như trong:Tham gia Chủ đề trong Groovy
def thread = Thread.start { println "new thread" }
thread.join()
Mã này hoạt động tốt ngay cả khi không báo cáo kết quả join
.
Phương pháp join
làm gì?
Như trong:Tham gia Chủ đề trong Groovy
def thread = Thread.start { println "new thread" }
thread.join()
Mã này hoạt động tốt ngay cả khi không báo cáo kết quả join
.
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 Thread
mà join
đượ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
.
Vì vậy, programm sẽ không làm bất cứ điều gì, cho đến khi 'thread' đã hoàn thành? – user1170330
@ user1170330 Tôi đã thêm một chút ví dụ. –
Cảm ơn bạn rất nhiều! – user1170330