Thread类和Runnable接口一对好基友
来源:互联网 发布:前端调用接口js加密 编辑:程序博客网 时间:2024/06/06 13:18
事实上Thread类和Runnable接口不是好基友,就像很多人被说成是基友其实只是关系好的同性好友而已。。
只有Thread类的start()方法才能真正实现多线程。
线程的运行内容是靠重写run()方法。
这两个方法是多线程的关键。
Runnable 接口没有start()方法,更没有start()方法的实现。所以要真正使用多线程,还是得借由Thread类生成Thread对象,调用start()方法。
他俩到底是什么关系呢??
通过源码可以发现,Thread 类有个start()方法,还有个run()方法。start()方法调用了本地实现,内情不得而知,总之是实现了多线程,应该是和操作系统发生了关系吧。。
而run()方法之前还有必要说明,Thread类有个Runnable的成员变量,毫无疑问携带了自己的run()方法。Thread类的run()方法就对此变量进行了判断,如果不为空则调用该变量的run方法。而此变量何时被赋值呢?就在Thread类的带参构造方法中,该方法接受Runnable类型参数。真相就在于此了!
总结下,如果Thread类被继承并重写run方法,则Runnable变量为Null,就没它的事了。运行的都是继承类的run()方法内容。
如果Runnable接口被实现,并重写run()方法(这是一定会被重写的),则需要将此对象传入到Thread()带参构造方法中,再start()就是调用该实现了Runnable接口对象的run()方法了。
- Thread类和Runnable接口一对好基友
- 实现Runnable接口和扩展Thread类
- Thread类和Runnable接口的区别
- 多线程Thread类和Runnable接口
- 【java】Thread类和Runnable接口
- 线程Thread类和Runnable接口
- Thread类和Runnable接口的区别
- thread类和runnable接口区别
- 彻底搞定Thread类和Runnable接口
- Thread类与Runnable接口
- Thread类与Runnable接口
- 线程(Thread类,Runnable接口)
- Thread和Runnable类
- 04.多线程--07.【Runnable接口的来历】【Thread类和Runnable接口的关系】【个人总结】
- Java 多线程的Thread类和Runnable接口
- Java 多线程的Thread类和Runnable接口
- Java 多线程的Thread类和Runnable接口
- Java 多线程的Thread类和Runnable接口
- Android常用的一些服务demo源码
- KVC与KVO的不同
- selenium - python 总结
- APK中实现关机
- 问 题四十: 编程序输出各种星号图 (六)
- Thread类和Runnable接口一对好基友
- __skb_dequeue()
- python 学习之二 函数篇
- MFC向导页面(wizard page)
- 天气预报(Android版)
- 图像缩放--OpenCV cvResize函数--最近邻插值---双线性插值--基本原理
- POJ 3207 Ikki's Story IV - Panda's Trick (2-SAT)
- js C++
- S3C6410开发全纪录(一)《还原SD卡启动的真相》