【线程的创建和启动的步骤(实现Runnable接口方式)】
1.定义Runnable接口的实现类,并重写其中的run方法。run()方法的方法体是线程执行体。
class SonThread implement Runnable{
public void run(){
......
}
}
2.创建Runnable接口实现类的实例。 sonThread s1=new SonThread();
3.用该实例作为Thread的target来创建Thread对象。 Thread t1 =new Thread(s1);
4.调用该对象的start()方法启动线程。 t1.start();
【示例代码】
package com.Higgin.part01; //1.1定义Runnable接口的实现类
class SecondThread implements Runnable{ //1.2重写其中的run方法
@Override
public void run() {
for(int i=;i<;i++){
System.out.println(Thread.currentThread().getName()+"===="+i);
}
} }
public class Demo2 { public static void main(String[] args) {
//2.创建Runnable的接口实现类的实例
SecondThread s1=new SecondThread();
SecondThread s2=new SecondThread();
//2.用Runnable的接口实现类的实例作为Thread的target,创建Thread对象
Thread t1=new Thread(s1);
Thread t2=new Thread(s2,"Higgin"); //创建Thread对象的同时可以为之命名 //启动线程
t1.start();
t2.start(); for(int i=;i<;i++){
System.out.println(Thread.currentThread().getName()+"===="+i);
}
}
}
【运行结果】
【注意一:关于命名】
在创建Thread 对象的时候可以为该Thread对象指定一个名字
【注意二:Thread的构造方法】
Runnable对象作为Thread对象的target,Runnable实现类里面包含run方法仅仅作为执行体。也就是说Thread类的作用是把run方法包装成线程的执行体。
实际运行的线程对象依然是Thread实例,只是该Thread线程负责执行其target的run方法。