第一种方式是将类声明为 Thread 的子类。
1. 定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此把run()方法称为线程执行体。
2. 创建Thread子类的实例,即创建了线程对象。
3. 调用线程对象的start()方法来启动该线程。
public class SubThread extends Thread {
/*
*2.在子线程类中重写run方法,在run方法中打印子线程的名称;
*/
public void run() {
// 打印子线程的名称
System.out.println("subThread:" + Thread.currentThread().getName());
}
}
public class ThreadDemo {
public static void main(String[] args) {
// 4.在main方法中打印主线程的名称;
System.out.println("main:" + Thread.currentThread().getName());
// 5.在main方法中创建子线程对象;
SubThread st = new SubThread();
// 6.调用子线程对象的start方法,开启子线程。
st.start();
}
}
第二种方式是声明一个类实现Runnable 接口。
1. 定义Runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。
2. 创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,Thread对象才是真正的线程对象。
3. 调用线程对象的start()方法来启动线程。
public class SubRunnable implements Runnable {
@Override
public void run() {
// 2.在子任务类中重写run方法,在run方法中打印子线程的名称。
System.out.println("SubRunnable:"+ Thread.currentThread().getName());
}
}
public class RunnableDemo {
public static void main(String[] args) {
// 4.在main方法中打印主线程的名称。
System.out.println("RunnableDemo:"+ Thread.currentThread().getName());
// 5.在main方法中创建一个子任务对象。
SubRunnable r = new SubRunnable();
// 6.在main方法中创建一个Thread类的对象,并把子任务对象传递给Thread类的 构造方法。
Thread t = new Thread(r);
// 7.调用Thread类对象的start方法开启子线程。
t.start();
}
}
创建线程的两种方式
最新推荐文章于 2024-10-30 13:17:11 发布

511

被折叠的 条评论
为什么被折叠?



