gpt4 book ai didi

java - 不使用 Thread.join() 的原因

转载 作者:太空狗 更新时间:2023-10-29 22:31:14 25 4
gpt4 key购买 nike

最近,高级开发人员告诉我不要使用 Thread.join() 来等待另一个线程完成。我还在 SO 上看到了几个这样的问题,要求候补者加入。

在我的研究中,我没有发现 join() 有任何问题。事实上它被广泛使用。

所以我想知道为什么不用join()?它有什么问题?它会助长糟糕的编程或架构吗?

最佳答案

join() 没有任何问题。尽善尽美。

但是,这就是为什么您不应该将您的应用程序架构为依赖于联接。在 Java 中,运行任务的主要抽象不再是线程。它是执行器。也就是说,您将并发任务包装为 Callable 并简单地将其提交给 Executor 而无需担心执行细节。这就是 Executor 的工作方式。您分别提交执行一个CallableRunnable,无需指定Thread。

So I would like to know why not use join()?

那么这就是你的理由:因为你不在 Executor 世界中创建或操作线程,所以使用 join 没有意义。几乎每个 join 都可以替换为其他内容(Future.getCountDownLatchLocks 等)。


注意:我并不是说您在使用执行器时不需要操作线程。在某些情况下,最好创建自己的 Thread 子类,然后让 Executor 通过 ThreadFactory 使用它们。

关于java - 不使用 Thread.join() 的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16513760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com