ExecutorService 如何传参
时间: 2023-10-13 17:18:46 浏览: 144
ExecutorService 是 Java 多线程编程中的一个接口,用于管理和执行线程池中的任务。它通常用于批量处理任务,提高程序的并发性。在使用 ExecutorService 时,可以通过不同的方式传递参数。
1. 使用匿名内部类实现 Runnable 或 Callable 接口:可以直接在内部类中定义需要的参数,并在 run() 或 call() 方法中使用这些参数。然后将该内部类的实例作为参数传递给 ExecutorService 的 submit() 或 execute() 方法。
示例代码:
```
ExecutorService executorService = Executors.newFixedThreadPool(5);
// 使用匿名内部类实现 Runnable 接口
executorService.submit(new Runnable() {
private int param1 = 10;
private String param2 = "example";
@Override
public void run() {
// 在 run() 方法中使用参数
System.out.println(param1 + " " + param2);
}
});
// 关闭 ExecutorService
executorService.shutdown();
```
2. 使用 Lambda 表达式:Lambda 表达式可以方便地传递参数,并在代码块中使用这些参数。将 Lambda 表达式作为参数传递给 ExecutorService 的 submit() 或 execute() 方法即可。
示例代码:
```
ExecutorService executorService = Executors.newFixedThreadPool(5);
// 使用 Lambda 表达式实现 Runnable 接口
int param1 = 10;
String param2 = "example";
executorService.submit(() -> {
// 在 Lambda 表达式中使用参数
System.out.println(param1 + " " + param2);
});
// 关闭 ExecutorService
executorService.shutdown();
```
这些都是常用的方式来传递参数给 ExecutorService 中的任务,具体的选择取决于你的需求和代码结构。
阅读全文