java - 关于多线程的问题

标签 java multithreading

  1. 线程类据说与可运行接口(interface)具有“IS-a”关系以及“Has-a”关系。拥有这两者有什么好处?

  2. 为什么我们优先考虑“Has-a”关系?

最佳答案

What is the benefit of having both of these?

这是一个糟糕的设计选择,IMO。避免Thread会更干净实现 Runnable首先。这导致了人们称之为 run 的各种错误(正如 Stack Overflow 上的问题所证明的那样)。在 Thread 上而不是 start .

Why do we give priority to "Has-a" relation?

组合通常比继承更灵活。如果你创建一个 Runnable实现你可以把它传递给 ExecutorService而不是 Thread , 例如。您并没有将自己束缚于执行操作的一种特定方式 - 您只是在说“这是我想要运行的代码。”

关于java - 关于多线程的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21673881/

相关文章:

java - 如何将 JVM 参数传递给使用 Inno Setup 创建的 native JavaFX 2 应用程序

java - 使用 NTLM 连接到 LDAP (Active Directory)

multithreading - 环形缓冲区,1 个写入器和 N 个读取器

java - Spring Security中每个 `owner_sid`中的 `object_identity`字段的用途是什么?

java ->> 转换为 ï¿

java - 如何在运行时从外部 jar 访问方法?

c# -++运算符线程安全吗?

Java Thread——同步线程

multithreading - 在MT程序中调试死锁线程?

java - 取消 ThreadPoolExector 中的等待任务