JavaSE:线程的创建
1. Thread类的概念
<1> java.lang.Thread类代表线程,任何线程对象,都是Thread类(子类)的实例。
<2> Thread类是线程的模板,封装了复杂的线程开启等操作,封装了操作系统的差异性
2. 线程的创建方式
<1>自定义类,继承Thread类,并重写run方法,然后创建该类的对象,调用start方法
<2>自定义类,实现Runnable接口,并重写run方法,创建该类的对象作为实参,来构造Thread类型的对象,
然后使用Thread类型的对象,调用start方法
3. 相关的方法
方法声明 | 功能介绍 |
Thread() | 使用无参的方式,构造对象 |
Thread(String name) | 根据参数指定的名称,来构造对象 |
Thread(Runnable target) |
根据参数指定的引用来构造对象,其中Runnable是个接口类型 |
Thread(Runnable target,String name) |
根据参数指定引用和名称,来构造对象 |
void run() |
若使用Runnable引用构造了线程对象,调用该方法时,最终调用接口中的版本 若没有使用Runnable引用构造线程对象,调用该方法时,则什么也不做 |
void start() |
用于启动线程,Java虚拟机会自动调用,该线程的run方法
|
4. 代码示例 1
1 class ThreadTest{ 2 main(){ 3 4 // 1. 使用无参方式,构造Thread类型的对象 5 // 由源码可知:Thread类中的成员变量target的数值,为null 6 Thread t1 = new Thread(); 7 8 // 2. 调用run方法进行测试 9 // 由源码可知:由于成员变量target的数值为null, 10 // 因此 if (target != null) 不成立, 跳过{}中的代码不执行 11 // 而run方法中,除了上述代码,再无其它代码,因此证明,run方法确实"啥也不干" 12 t1.run(); 13 14 // 3. 打印一句话 15 System.out.println("我想看看你到底是否真的啥也不干!"); 16 } 17 }