14.2 线程创建的方式二:
2016-05-27 15:59
218 查看
方式一: 1、自定义一个类,该类继承Thread类。 2、重写Thread类的run方法,把自定义线程的代码放到run方法上。 3、创建Thread子类的对象,调用start方法,启动线程。 方式二: 1、自定义一个类实现Runnable接口。 2、实现Runnable接口的run方法,把自定义的线程代码放到run方法中。 3、创建runnable的实现类对象。 4、创建Thread类的对象,并且把runnable实现类的对象作为实参传递。 5、调用Thread对象的start方法开启一个线程。 问题1:请问Runnable实现类的对象是线程对象吗? 答:Runnable的实现类的对象并不是一个线程对象,其只不过是实现了Runnable的接口的对象而已。 只有Thread或者Thread子类的对象才睡线程的对象。 问题2:为什么要把Runnable的实现类的对象作为实参传递给Thread对象呢?作用是什么? 作用:就是把Runnable实现类的对象的run方法作为线程的任务代码去执行了。 对于这2种方式,推荐使用第二种,实现Runnable接口实现。因为java虚拟机类是单继承的。
class test implements Runnable{@Overridepublic void run() {System.out.println(Thread.currentThread());//在这里这2个对象不一样,Thread.currentThread()表示是Thread的对象。this则是表示test类的对象System.out.println(this);}}class wu{public static void main(String [] args){test t1 = new test();Thread th = new Thread(t1,"张三");th.start();}}
相关文章推荐
- Android中dp和px之间进行转换的代码
- 290. Word Pattern
- Save & Apply mechanism of luci
- IOS 单例设计模式解读
- 详解SQL Server连接(内连接、外连接、交叉连接)
- 26. SpringMVC_mvc_view-controller标签 (无笔记)
- 连接Oracle11g时报错ORA-12541: TNS: 无监听程序
- Android EditView用法小结
- redhat 5.0 python2.4升级到2.7
- Linux下安装Tomcat服务器和部署Web应用
- 正则表达式
- JAVA语法题
- Android Library项目注意事项
- ceph 日志01
- [dhtmlxGantt(甘特图)开发手册]第四篇——撤销/重做、提示消息、加载任务
- 新买的电脑如何用U盘装系统
- 51nod 1007 正整数分组
- Amortized Analysis 摊还分析
- iOS - 将图片保存至相册
- HDU1161 Eddy's mistakes