码迷,mamicode.com
首页 > 编程语言 > 详细

线程的创建方式比较

时间:2020-05-14 15:09:02      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:size   line   方式   current   面向   适合   数据   code   runable   

线程的创建方式:
1:通过继承Thread类来创建线程。
技术图片
2:通过实现Runnable接口来创建线程。
技术图片
然后在Main方法里分别创建通过继承Thread类和实现Runnable接口的线程,如下图:
技术图片
我们可以看见:通过继承Thread类的创建线程是直接new 一个对象的。而通过实现接口的是new 一个对象之后再在对象外面包一层Thread()。
注意!!! ****两种方法都对run()方法进行了重写,实际上,Thread类就已经实现了Runnable接口,Thread类里的run()方法就是对Runnable接口中的run()方法的重写。run()方法的最初来源其实就是Runnable接口里的抽象方法。而start()的最初来源是Thread这个类里面的。线程只有通过调用start()方法才能从新建状态到达就绪状态然后等待cpu的调度。Thread和Runnable接口都是在lang包里。

总结:
采用继承Thread类方式:
(1)优点:编程简单,如果需要访问当前线程,无需使用Thread.currentThread()方法,直接使用this,即可获取当前
线程。
(2)缺点:因为线程类已经继承了Thread类,所以不能再继承其他的父类。
采用实现Runnable接口方式:
(1)优点:线程类只是实现了Runable接口,还可以继承其他类。在这种方式下,可以多个线程共享同一个目标对象,
所以非常适合多个相同的线程来处理同一份资源的情况,从而可以将cpu代码和数据分开,形成清晰的模型,较好地体现
了面向对象的思想。
(2)缺点:编程稍微复杂,如果需要访问当前线程,必须使用Thread.currentThread()方法。

线程的创建方式比较

标签:size   line   方式   current   面向   适合   数据   code   runable   

原文地址:https://www.cnblogs.com/xm970829/p/12888428.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!