Java 多线程小结
时间: 2024-02-19 07:55:27 浏览: 78
Java多线程小结
Java多线程是指在一个Java程序中同时执行多个线程,每个线程都是独立的执行流。Java中创建线程的方式有三种:继承Thread类、实现Runnable接口和实现Callable接口。每种方式都有其优缺点。
1. 继承Thread类创建线程类:
```java
class MyThread extends Thread {
public void run() {
// 线程执行的代码
}
}
// 创建线程对象并启动线程
MyThread thread = new MyThread();
thread.start();
```
优点:简单易用,可以直接重写Thread类的run()方法。
缺点:由于Java不支持多继承,继承了Thread类就无法再继承其他类。
2. 实现Runnable接口创建线程类:
```java
class MyRunnable implements Runnable {
public void run() {
// 线程执行的代码
}
}
// 创建线程对象并启动线程
Thread thread = new Thread(new MyRunnable());
thread.start();
```
优点:避免了单继承的限制,可以继续继承其他类或实现其他接口。
缺点:需要额外创建Thread对象,并将Runnable对象作为参数传递给Thread对象。
3. 实现Callable接口创建线程类:
```java
class MyCallable implements Callable<Integer> {
public Integer call() throws Exception {
// 线程执行的代码
return 0;
}
}
// 创建线程池对象
ExecutorService executor = Executors.newFixedThreadPool(1);
// 提交Callable任务并获取Future对象
Future<Integer> future = executor.submit(new MyCallable());
// 获取线程执行结果
int result = future.get();
```
优点:可以获取线程执行的结果,并且可以抛出异常。
缺点:相对于前两种方式,使用Callable需要更多的代码。
阅读全文