【问题标题】:Java Multi Threading ControlJava 多线程控制
【发布时间】:2023-03-04 15:38:01
【问题描述】:

我正在使用此代码来创建线程。

      while ((strLine = br.readLine()) != null) {
                r = new runnable(strLine);
                new Thread(r).start();
                x++;
                Thread.sleep(100);
      }

如何控制在任何时间点运行的最大线程数? 此代码存在使用的内存不断增加(内存泄漏)的问题,是否有更好的方法来做到这一点? 我尝试使用调度程序但没有帮助。

【问题讨论】:

    标签: java multithreading memory-leaks


    【解决方案1】:

    您可以使用ExecutorService 创建受限线程池。

    ExecutorService executor = Executors.newFixedThreadPool(10);
    

    将创建一个包含 10 个可用线程的池。然后你可以调用

    executor.submit(new Runnable() { ... })
    

    针对每个工作单元。

    编辑:我应该注意这个工具只在 Java 1.5 和更高版本中可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      相关资源
      最近更新 更多