簡體   English   中英

Java - 在所有線程完成后等待初始化活動

[英]Java - waiting to initialize an activity after all threads are completed

我有幾個並行執行活動的線程。 只有在所有線程完成后,我才必須繼續進行后續活動。 有沒有辦法做到這一點?

您應該查看Thread class 中的join()方法 連接可用於允許一個線程等待另一個線程完成。 它還超載以允許指定等待其他線程完成的時間。 聯接作為 Java 並發教程的一部分進行了討論

對所有線程執行 thread.join()。

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#join ()

您可以使用 Thread.join() 來等待線程完成。 查看 Javadoc 以獲取更多信息。

我認為使用http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/CountDownLatch.html實際上比 Thread.join() 更好,因為它應該更好地擴展。

從概念上講,解決您的問題的一種方法是創建一個觀察者 object ,您正在運行的每個線程都會引用它。 一旦線程完成,它就會通知觀察者它執行了他的任務。 每次觀察者收到這種通知,它都會增加一個計數器,一旦計數器達到線程數,這意味着所有線程都完成了。 然后觀察者可以開始最后的任務。

那是為了理論。 如果你想要,有一個內置的 java class: CountDownLatch

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM