请举例说明Java的并发编程,比如线程池的应用。
在Java中,并发编程主要是利用多核处理器的优势,同时处理多个任务。以下是一个使用线程池的例子:
- 创建一个简单的任务类(Task):
public class Task implements Runnable {
private String name;
public Task(String name) {
this.name = name;
}
@Override
public void run() {
System.out.println("Running task: " + name);
// 这里可以执行一些耗时的操作
}
}
- 创建一个线程池(ThreadPoolExecutor):
public class ThreadPoolExample {
private static final int THREAD_POOL_SIZE = 10; // 根据实际情况设置
public static void main(String[] args) {
// 创建任务列表
List<Task> tasks = new ArrayList<>();
for (int i = 0; i < 50; i++) { // 假设每个任务都需要执行50次
String taskName = "Task" + i;
Task task = new Task(taskName);
tasks.add(task);
}
// 创建线程池并提交任务
ExecutorService executor = Executors.newFixedThreadPool(THREAD_POOL_SIZE));
for (Task task : tasks) {
executor.submit(task);
}
// 关闭线程池
executor.shutdown();
while (!executor.isTerminated())) {
// 等待所有任务完成
}
}
}
这个例子中,我们创建了一个固定大小的线程池(ThreadPoolExecutor)来执行一系列的任务。每个任务都是一个Runnable实例,提交给线程池后会被并发执行。最后,我们关闭线程池以释放资源。
还没有评论,来说两句吧...