用JAVA写一个线程池
时间: 2023-02-09 07:05:37 浏览: 72
在 Java 中,你可以使用 Executor 框架来创建线程池。
要创建线程池,你需要使用 Executors 类的静态工厂方法之一来创建 ExecutorService 对象,如 newFixedThreadPool() 或 newCachedThreadPool()。
例如,你可以使用以下代码创建固定大小的线程池:
```
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
// 创建固定大小的线程池
ExecutorService threadPool = Executors.newFixedThreadPool(10);
```
然后,你可以使用 ExecutorService 的 execute() 方法来将 Runnable 对象提交到线程池进行执行。
例如:
```
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
ExecutorService threadPool = Executors.newFixedThreadPool(10);
threadPool.execute(new Runnable() {
@Override
public void run() {
// 这里写你的任务代码
}
});
```
你还可以使用 ExecutorService 的 submit() 方法来提交 Callable 对象,这样你就可以在任务完成后获取返回值。
例如:
```
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
ExecutorService threadPool = Executors.newFixedThreadPool(10);
Future<String> future = threadPool.submit(new Callable<String>() {
@Override
public String call() throws Exception {
// 这里写你的任务代码
return "Task completed!";
}
});
// 获取任务的返回值
String result = future.get();
```
在线程池不再需要的时候,你应该使用 ExecutorService 的 shutdown() 方法关闭它,这样