Java多线程实现三种方式
时间: 2024-05-08 22:15:38 浏览: 108
1. 继承Thread类
Java提供了Thread类,我们可以通过继承Thread类来实现多线程。具体步骤如下:
(1)创建一个继承Thread类的子类,并重写run()方法。
(2)在子类中创建一个Thread类的实例对象,并调用start()方法启动线程。
示例代码如下:
```
public class MyThread extends Thread {
@Override
public void run() {
// 线程执行的代码
}
}
// 创建线程并启动
MyThread myThread = new MyThread();
myThread.start();
```
2. 实现Runnable接口
Java中还可以通过实现Runnable接口来实现多线程。具体步骤如下:
(1)创建一个实现Runnable接口的类,并实现run()方法。
(2)在类中创建一个Thread类的实例对象,将实现了Runnable接口的类的实例对象作为参数传入Thread的构造方法中。
(3)调用Thread实例对象的start()方法启动线程。
示例代码如下:
```
public class MyRunnable implements Runnable {
@Override
public void run() {
// 线程执行的代码
}
}
// 创建线程并启动
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
```
3. 实现Callable接口
Java中还可以通过实现Callable接口来实现多线程。与实现Runnable接口相比,实现Callable接口可以有返回值,并且可以抛出异常。具体步骤如下:
(1)创建一个实现Callable接口的类,并实现call()方法。
(2)创建一个ExecutorService线程池对象,调用submit()方法提交Callable类的实例对象。
(3)调用Future类的get()方法获取线程执行结果。
示例代码如下:
```
public class MyCallable implements Callable<Integer> {
@Override
public Integer call() throws Exception {
// 线程执行的代码
return 1;
}
}
// 创建线程池对象
ExecutorService executorService = Executors.newFixedThreadPool(1);
// 提交Callable实例对象
MyCallable myCallable = new MyCallable();
Future<Integer> future = executorService.submit(myCallable);
// 获取线程执行结果
int result = future.get();
```
阅读全文