学习笔记2-两种创建线程方式的对比

创建线程两种方式:

1.通过继承Thread类
2.通过实现Runnable接口


下面对于这两种方法做比较:

相同点:

都需要重写run(),将待实现的逻辑写在run()方法中

联系:

看Thread类的源码可以发现:

public class Thread implements Runnable 

实际上Thread类也实现了Runnable接口,也就是说:Thread类当中的run()也是重写Runnable接口的,继承Thread类并重写run()方法与直接实现Runnable接口在本质上并没有区别。


在实际开发当中,一半选择“通过实现Runnable接口来创建线程”:

原因有两个:

1.Java是单继承制的,当一个类为了实现进程继承了Thread类之后,就无法再继承其他的类,通过实现Runnable接口可以避免这样的问题。因为接口是可以同时实现多个的。

2.通过实现Runnable接口的方式更加适合处理多个线程共享数据的情况。例如要在三个窗口售出100张票,三个窗口共享这100张票,用实现的方式创建线程,则创建一个卖票的对象实例传入三个Thread当中即可实现数据的共享和同步,更加方便。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务