java.lang.Runnable接口
来源:互联网 发布:微信炸群软件下载 编辑:程序博客网 时间:2024/06/06 03:10
大家都知道使用线程的2种方式,一是继承Thread类,二是实现Runnable接口。
实际上,即使你实现了Runnable接口,最终还是要构造一个Thread类的对象。
看过Thread源代码发现,其实这个Thread类也实现了Runnable接口,而这个Thread类的run()方法实现是
if (target != null) {
target.run();
}
而这个target则是Thread类的构造器都要调用的init()方法所指定的Runnable接口实现类。
Thread类的几个构造器Thread()、Thread(Runnable target)、Thread(ThreadGroup group, Runnable target)、Thread(String name)、Thread(ThreadGroup group, String name)、Thread(Runnable target, String name)、Thread(ThreadGroup group, Runnable target, String name)、Thread(ThreadGroup group, Runnable target, String name, long stackSize)都调用了private void init(ThreadGroup g, Runnable target, String name, long stackSize)。
所以如果你实现了Runnable接口并用这个接口实现类构造了一个Thread对象,那么run()方法执行的将是这个target Runnable接口实现类的run()方法,否则,如果直接继承自Thread类,那么这个target为null,所以你只能覆盖掉Thread类的run()方法。
实际上,即使你实现了Runnable接口,最终还是要构造一个Thread类的对象。
看过Thread源代码发现,其实这个Thread类也实现了Runnable接口,而这个Thread类的run()方法实现是
if (target != null) {
target.run();
}
而这个target则是Thread类的构造器都要调用的init()方法所指定的Runnable接口实现类。
Thread类的几个构造器Thread()、Thread(Runnable target)、Thread(ThreadGroup group, Runnable target)、Thread(String name)、Thread(ThreadGroup group, String name)、Thread(Runnable target, String name)、Thread(ThreadGroup group, Runnable target, String name)、Thread(ThreadGroup group, Runnable target, String name, long stackSize)都调用了private void init(ThreadGroup g, Runnable target, String name, long stackSize)。
所以如果你实现了Runnable接口并用这个接口实现类构造了一个Thread对象,那么run()方法执行的将是这个target Runnable接口实现类的run()方法,否则,如果直接继承自Thread类,那么这个target为null,所以你只能覆盖掉Thread类的run()方法。
- java.lang.Runnable接口
- Java.lang.Runnable 接口
- Thread-实现java.lang.Runnable接口
- java.lang.Runnable翻译
- java多线程 Runnable接口
- JAVA 实现Runnable接口
- JAVA 实现Runnable接口
- Java中的Runnable接口
- JAVA 实现Runnable接口
- JAVA Runnable接口
- 来自java文档 接口Runnable
- java多线程继承Runnable接口
- java runnable 接口启动线程
- java runnable接口实现多线程
- Java 实现Runnable接口 资源共享
- Java多线程三:Runnable接口
- java多线程实现:Runnable接口
- java.lang.Exception: No runnable methods
- [转载]如何提高.NET Compact Framework应用程序的性能
- Ajax应用
- 升级libtool带来的问题
- ASP函数大全
- CSS和页面布局
- java.lang.Runnable接口
- 有效下单策略可规避市价订单风险
- [C]从题中得到的新认识
- 全选反选的处理
- 车载GPS导航项目
- 遍历Request.ServerVariables
- 技术部的规范管理
- 不做企业厌恶的求职者
- 第2章 集合 读书笔记