Java---第二种创建线程的方式Java---第二种创建线程的方式

注意以下的问题

此处的start调用的应该是Thread的run方法,而该创建方法中并没有重写Thread的run方法,为什么会调用呢??

答案

可以从Thread的源码中去找
1.进入Thread找到run()方法
Java---第二种创建线程的方式
此处有一个target我们来看看
Java---第二种创建线程的方式
有一个Runnable类型的变量,我们正好前面定义对象时传入了Runnable的参数,再看看构造函数
Java---第二种创建线程的方式
看到这差不多就明白了。

从上往下看当有target参数传进来时,会调用此方法,从而调用Runnable的run()方法。

另:卖票窗口的题目

注意:若使用第一种继承方法,则需要给ticket属性加上static。
而该方法不需要,因为公用的一个对象。

但是以上两种方法都存在安全问题。窗口1,2,3都卖了票号为100的号
Java---第二种创建线程的方式

创建线程两种方式的比较

开发中:优先选择实现Runnable接口的方式
原因:1.实现的方式没有类的单继承性的局限性
2.实现的方式更适合处理多个线程有共享数据的情况
联系:public class Thread implement Runnable
相同点:两种方式都需要重写run方法,线程要执行的逻辑声明在run()中

相关文章:

  • 2021-11-23
  • 2021-10-22
  • 2022-02-09
  • 2022-02-09
  • 2022-02-09
猜你喜欢
  • 2022-01-21
  • 2022-02-09
  • 2022-12-23
  • 2021-06-10
  • 2022-02-09
  • 2021-08-18
  • 2021-11-23
相关资源
相似解决方案