第一种方式:创建Thread子类
实现步骤:
1.创建一个Thread类的子类
2.在Thread类的子类中重写Thread类中的run方法,设置线程任务
3.创建Thread类的子类对象
4.调用Thread类中的方法start方法,开启新的线程,执行run方法
创建一个Thread类的子类SonThread类
public class SonThread extends Thread{
//在Thread类的子类中重写Thread类中的run方法,设置线程任务
public void run(){
for (int i = 0; i < 20; i++ ){
System.out.println("run:"+ i);
}
}
}
定义测试类
public class TestThread {
public static void main(String[] args) {
//创建Thread类的子类对象
SonThread st = new SonThread();
//调用Thread类中的方法start方法,开启新的线程,执行run方法
st.start();
for (int i = 0; i < 20; i++) {
System.out.println("main:"+i);
}
}
}
运行结果
父线程和子线程同时运行
第二种方式:实现Runnable接口
实现步骤:
1.创建一个Runnable接口的实现类
2.在实现类中重写Runnable接口的run方法,设置线程任务
3.创建一个Runnable接口的实现类对象
4.创建Thread类对象,构造方法中传递Runnable接口的实现类对象
5.调用Thread类中的start方法,开启新的线程执行run方法
创建一个Runnable接口的实现类
public class RunnableImpl implements Runnable{
//在实现类中重写Runnable接口的run方法,设置线程任务
public void run() {
for (int i = 0; i < 20 ;i++) {
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
}
创建TestRunnable类
public class TestRunnable {
public static void main(String[] args) {
//创建一个Runnable接口的实现类对象
RunnableImpl run = new RunnableImpl();
//创建Thread类对象,构造方法中出传递Runnable接口的实现类对象
Thread t = new Thread(run);
//调用Thread类中的start方法,开启新的线程执行run方法
t.start();
for (int i = 0; i < 20 ;i++) {
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
}
结果