有关多线程的问题

时间:2014-02-10 09:54:18

标签: java multithreading

  1. 线程类被称为具有“IS-a”关系以及与可运行接口的“Has-a”关系。拥有这两个有什么好处?

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

1 个答案:

答案 0 :(得分:5)

  

同时拥有这两者有什么好处?

这是一个糟糕的设计选择,IMO。避免Thread首先实施Runnable会更加清晰。这导致了各种错误(如Stack Overflow上的问题所见)人们在run而不是Thread上调用了start

  

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

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

相关问题