gpt4 book ai didi

java - 理解 Java 线程的并发性

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:17 25 4
gpt4 key购买 nike

我目前正在阅读 http://tutorials.jenkov.com/java-concurrency/creating-and-starting-threads.html 中的 Java 并发教程

我无法理解“子类或可运行?”下的以下几行内容

当线程池执行 Runnable 时,很容易将 Runnable 实例排队,直到池中的线程空闲为止。

最佳答案

正如文章指出的那样,它们都“有效”,尽管一般来说,您应该使用 Runnable(或者如果需要带有 Future 的参数/结果,则使用 Callable)而不是子类化 Thread。正如您所指出的,这更加灵活 - 它将执行的内容与执行的人分开。扩展线程不必要地将这两个概念在同一个实例中紧密耦合在一起,打破了 single responsibility 的 OO 原则。 .

有时,当您的手被 API 强制时,您必须将可执行代码实现为 Thread 的子类。例如,运行时。 addShutdownHook(Thread)要求将在关闭时执行的代码注册为 Thread 实例。但如果您不处理这些特定情况之一,那么请始终使用 Runnable

关于java - 理解 Java 线程的并发性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5691718/

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