在Java中创建线程主要有两种方式:
-
继承Thread类:
- 首先,定义一个继承自
Thread的类。 - 然后,在该类中覆写
run()方法,将你想要在该线程中执行的代码放入run()方法中。 - 创建这个继承了
Thread类的实例,并调用实例的start()方法来启动线程。
示例代码:
javaclass MyThread extends Thread { public void run(){ System.out.println("我的线程正在运行"); } } public class TestThread { public static void main(String args[]) { MyThread t = new MyThread(); t.start(); // 启动线程 } } - 首先,定义一个继承自
-
实现Runnable接口:
- 定义一个实现了
Runnable接口的类。 - 实现该接口的
run()方法,在这个方法里放入你想在线程中运行的代码。 - 创建该类的实例,并将它作为参数传递给
Thread的构造函数来创建一个线程对象。 - 调用线程对象的
start()方法来启动线程。
示例代码:
javaclass MyRunnable implements Runnable { public void run(){ System.out.println("通过Runnable接口创建线程"); } } public class TestRunnable { public static void main(String args[]) { MyRunnable myRunnable = new MyRunnable(); Thread t = new Thread(myRunnable); t.start(); // 启动线程 } } - 定义一个实现了
这两种方法本质上都是构建一个可以独立执行的代码块,并通过start()方法来让Java虚拟机调用这个代码块的run()方法。使用Runnable接口的方式更加灵活,因为Java不支持多重继承,所以当你的类已经继承了其他类时,只能选用实现Runnable接口的方式来创建线程。