千锋教育-做有情怀、有良心、有品质的职业教育机构
Java创建多线程的方式有以下几种:
继承Thread类:定义一个类继承Thread类,并重写run()方法,在该方法中编写线程执行的代码,然后创建该类的实例,并调用start()方法启动线程。
示例代码:
public class MyThread extends Thread {
public void run() {
// 线程执行的代码
}
}
public class Main {
public static void main(String[] args) {
MyThread t = new MyThread();
t.start();
}
}
实现Runnable接口:定义一个类实现Runnable接口,并实现该接口中的run()方法,在该方法中编写线程执行的代码,然后创建该类的实例,并将该实例作为参数传递给Thread类的构造方法创建Thread对象,最后调用start()方法启动线程。
示例代码:
public class MyRunnable implements Runnable {
public void run() {
// 线程执行的代码
}
}
public class Main {
public static void main(String[] args) {
MyRunnable r = new MyRunnable();
Thread t = new Thread(r);
t.start();
}
}
实现Callable接口:定义一个类实现Callable接口,并实现该接口中的call()方法,在该方法中编写线程执行的代码,然后创建该类的实例,并将该实例作为参数传递给FutureTask类的构造方法创建FutureTask对象,最后调用Thread类的构造方法创建Thread对象,并将FutureTask对象作为参数传递给该构造方法,最后调用start()方法启动线程。
示例代码:
public class MyCallable implements Callable {
public Object call() throws Exception {
// 线程执行的代码
return null;
}
}
public class Main {
public static void main(String[] args) {
MyCallable c = new MyCallable();
FutureTask task = new FutureTask(c);
Thread t = new Thread(task);
t.start();
}
}
以上三种方式都可以创建多线程,但是推荐使用第二种方式实现Runnable接口,因为Java中只支持单继承,如果使用第一种方式继承Thread类,就不能再继承其他类了,而使用第二种方式实现Runnable接口就可以避免这个问题。另外,第三种方式使用Callable接口创建线程可以返回线程执行结果。
上一篇
java线程的几种状态下一篇
vector和list的区别相关推荐