理解并解决Java并发问题:线程池示例

原创 我会带着你远行 2024-11-28 09:45 189阅读 0赞

在Java中,线程池是一种管理和复用线程的机制。当程序中有大量的重复任务需要处理时,使用线程池可以提高系统的并发性能,减少创建和销毁线程的开销。

以下是一个简单的Java线程池示例,使用了ThreadPoolExecutor类:

  1. import java.util.concurrent.*;
  2. public class ThreadPoolExample {
  3. public static void main(String[] args) {
  4. // 创建线程池,核心线程数为2,最大线程数为10
  5. ExecutorService executor = Executors.newFixedThreadPool(5);
  6. // 提交任务到线程池
  7. for (int i = 0; i < 10; i++) {
  8. Runnable task = new Task(i);
  9. executor.execute(task); // 提交任务
  10. }
  11. // 关闭线程池,所有提交的任务将全部被阻塞,直到线程池被关闭
  12. executor.shutdown();
  13. }
  14. }
  15. class Task implements Runnable {
  16. private int index;
  17. public Task(int index) {
  18. this.index = index;
  19. }
  20. @Override
  21. public void run() {
  22. System.out.println("Task " + index + " is running by thread: " + Thread.currentThread().getName());
  23. try {
  24. Thread.sleep(1000); // 模拟耗时操作
  25. } catch (InterruptedException e) {
  26. e.printStackTrace();
  27. }
  28. System.out.println("Task " + index + " completed by thread: " + Thread.currentThread().getName());
  29. }
  30. }

这个示例创建了一个固定大小的线程池,然后提交了10个任务给线程池。每个任务都会打印出它的运行信息和完成信息。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,189人围观)

还没有评论,来说两句吧...

相关阅读