正确理解多线程创建有多少种实现方式???

原创
2020/05/27 13:16
阅读数 668

从不同的角度去看这个问题,会有不同的答案,有的说是2种,4种,6种。

但是从代码的本质来看,实现多线程的只有一种方式,那就是构造Thread类对象,而实现线程的执行单元有两种方式:

1、实现Runnable接口,重写run函数方法。

2、继承Thread类,重写run函数方法。

至于网上其他的线程池,匿名内部类,等等,其本质上还是底层实现了Runnable或者继承了thread类来重写Run方法。

至于Runnable接口与Thread哪种方式好,我觉得实现Runnable接口更好,从JAVA单继承的角度方面来讨论,如果这个类继承了Thread,往后如果要扩展功能,要继承一个基类,这时候就不允许了,但是你觉得我可以基类去继承Thread啊,这样也是可以,但违反了单一职责设计模式,导致其他类不需要实现线程的类去继承这个基类,而另外一个重要问题,如果是继承Thread,如果我又有一个新的需求,去跑另外一个任务,要知道,线程的创建是消耗资源的,而使用Runnable接口去实现,只需要把该任务丢给线程池,大大减少线程的创建耗资源的问题。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部