簡體   English   中英

為什么 Thread.join() 方法使用“join”這個詞?

[英]Why is the word "join" is used for the Thread.join() method?

我開始研究以找出“join”一詞用於Thread.join()方法的原因。 實際上,它等待調用它的線程結束並暫停主線程以等待它,因此沒有什么可加入的。 所以,它的名字應該是這樣的:

  1. Thread.pauseCaller();
  2. Thread.freezeCaller();
  3. Thread.focusThread();
  4. 線程.runBefore();

經過大量研究,我發現了一個簡單的句子,它說:

Thread.join(); it. name 來自調用線程等待指定線程它的概念。

我完全無法理解上面這句話,也無法理解在這種方法中使用join一詞的背景上下文。 在這種情況下,“加入”一詞代表什么? 沒有什么可以加入其他任何東西; 相反,它只是暫停調用線程以等待線程后跟join() 所以,任何人都可以告訴使用的情況下join了這個方法字?

“join”一詞來自Fork–Join 模型,其中“fork”表示將線程拆分為多個線程進行並行處理,“join”表示等待並行線程完成其部分,然后再繼續單個線程線。

Join 是並發模型中使用的一個常用術語,這意味着兩個獨立運行的線程彼此同步,並且一個線程直到另一個線程到達特定的連接點才會繼續運行。 所以2個線程重新連接在一起。 在 Java 中,這通常是在另一個線程完成其任務時。

請注意,在任務由可重用工作線程支持的模型中,這可能不完全相同,例如使用ExecutorService等待結果時,並使用CompletableFuture.join()阻塞直到結果可用。 在這種情況下,連接與並行執行的任務更相關,而不是實際的底層工作線程,后者可能會在之后重用於其他任務。

該名稱本身來自用於並行化任務並收集其結果的fork-join 模型

暫無
暫無

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

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