java实现多线程的方法
时间: 2023-07-29 19:06:32 浏览: 107
Java实现多线程的方法有以下几种:
1. 继承Thread类:创建一个继承自Thread类的子类,重写run方法,在run方法中编写线程的业务逻辑。然后通过创建子类的实例来创建线程对象,并调用start方法启动线程。
示例代码:
```java
class MyThread extends Thread {
public void run() {
// 线程的业务逻辑
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
}
}
```
2. 实现Runnable接口:创建一个实现了Runnable接口的类,实现run方法,在run方法中编写线程的业务逻辑。然后通过创建Runnable实现类的实例,再将其传递给Thread类的构造方法来创建线程对象,并调用start方法启动线程。
示例代码:
```java
class MyRunnable implements Runnable {
public void run() {
// 线程的业务逻辑
}
}
public class Main {
public static void main(String[] args) {
MyRunnable runnable = new MyRunnable();
Thread thread = new Thread(runnable);
thread.start();
}
}
```
3. 使用Callable和Future:创建一个实现了Callable接口的类,实现call方法,在call方法中编写线程的业务逻辑,并返回一个结果。然后通过创建Callable实现类的实例,再将其传递给ExecutorService的submit方法来提交线程任务,返回一个Future对象,可以通过Future来获取线程的执行结果。
示例代码:
```java
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
class MyCallable implements Callable<String> {
public String call() {
// 线程的业务逻辑
return "Hello, World!";
}
}
public class Main {
public static void main(String[] args) throws Exception {
ExecutorService executor = Executors.newSingleThreadExecutor();
MyCallable callable = new MyCallable();
Future<String> future = executor.submit(callable);
String result = future.get();
System.out.println(result);
executor.shutdown();
}
}
```
以上是Java实现多线程的几种常见方法,根据具体需求选择适合的方法。
阅读全文