Java并发工具类比如ExecutorService的使用场景和错误示例

原创 末蓝、 2024-10-12 04:33 143阅读 0赞

Java并发工具类如ExecutorService主要在多线程编程中用来管理和控制任务执行。以下是一些常见使用场景以及错误示例:

  1. 使用场景:

    • 线程池:批量创建、管理多个线程。
    • 任务分发:将一个或多个任务分配给线程执行。
    • 阻塞和非阻塞操作:通过ExecutorService调用submit, callAsync, etc方法实现。
  2. 错误示例:

    • 直接创建线程:
      1. Thread myThread = new Thread(new Runnable() {
      2. @Override
      3. public void run() {
      4. // 这里是你的代码,通常会引发同步问题
      5. System.out.println("直接创建的线程运行了");
      6. }
      7. })));
      8. myThread.start(); // 这会导致主线程阻塞
    • 使用无限制的线程池:
      1. ExecutorService executor = Executors.newUnboundedThreadPool();
      2. // ...
      3. executor.shutdownNow(); // 这会中断正在执行的任务,可能导致数据丢失或异常
      4. executor.awaitTermination(1, TimeUnit.MINUTES)); // 这会等待线程池完全终止(所有任务已完成),可能会阻塞主线程
      以上内容主要针对ExecutorService的基本使用和可能出现的问题进行解释。
文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

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

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

相关阅读