线程池如何调用callable的线程
时间: 2023-11-22 11:50:22 浏览: 81
线程池管理多线程上传
5星 · 资源好评率100%
在Java中,可以通过线程池来调用实现了Callable接口的线程。下面是一个示例代码:
```java
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class CallableThreadExample implements Callable<String> {
private String name;
public CallableThreadExample(String name) {
this.name = name;
}
@Override
public String call() throws Exception {
// 在这里编写线程的逻辑
return "Hello, " + name;
}
public static void main(String[] args) {
// 创建一个线程池
ExecutorService executorService = Executors.newFixedThreadPool(5);
// 提交Callable任务给线程池
Future<String> future = executorService.submit(new CallableThreadExample("World"));
try {
// 获取线程执行结果
String result = future.get();
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
// 关闭线程池
executorService.shutdown();
}
}
```
在上面的示例中,我们首先创建了一个线程池,然后通过`executorService.submit()`方法提交一个实现了Callable接口的线程。该方法会返回一个Future对象,我们可以通过调用`future.get()`方法来获取线程的执行结果。
需要注意的是,线程池中的线程会自动复用,可以通过调整线程池的大小来控制并发执行的线程数量。
阅读全文