创建线程池任务是实现runnable还是很实现callable
时间: 2024-04-13 16:30:43 浏览: 77
Java线程池的几种实现方法和区别介绍
创建线程池任务可以使用两种方式:实现Runnable接口或实现Callable接口。
1. 实现Runnable接口:
```java
public class MyRunnable implements Runnable {
@Override
public void run() {
// 线程执行的逻辑
}
}
```
然后将MyRunnable对象传递给线程池的execute()方法:
```java
ExecutorService executor = Executors.newFixedThreadPool(5);
executor.execute(new MyRunnable());
```
2. 实现Callable接口:
```java
public class MyCallable implements Callable<String> {
@Override
public String call() throws Exception {
// 线程执行的逻辑,并返回结果
return "Hello, World!";
}
}
```
然后将MyCallable对象传递给线程池的submit()方法:
```java
ExecutorService executor = Executors.newFixedThreadPool(5);
Future<String> future = executor.submit(new MyCallable());
String result = future.get(); // 获取线程执行的结果
```
需要注意的是,使用Runnable接口时,线程执行的逻辑在run()方法中定义,但没有返回值;而使用Callable接口时,线程执行的逻辑在call()方法中定义,并且可以返回一个结果。根据具体需求选择合适的方式创建线程池任务。
阅读全文