Java多线程控制

发布于 2024-11-08 19:20:38 字数 318 浏览 0 评论 0原文

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

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

如何控制任意时刻运行的最大线程数? 此代码存在内存使用不断上升(内存泄漏)的问题,有更好的方法吗? 我尝试使用调度程序但没有帮助。

I am using this code to create threads.

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

How can I control the maximum number of threads running at any point of time?
This code has issues where memory used keeps rising(memory leak) is there a better way to do this?
I tried using scheduler but didnt help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

好久不见√ 2024-11-15 19:20:38

您可以使用 ExecutorService< /code>创建约束线程池。

ExecutorService executor = Executors.newFixedThreadPool(10);

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

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

每个工作单元。

编辑:我应该注意,此功能仅在 Java 1.5 及更高版本中可用。

You can use an ExecutorService to create constrained thread pools.

ExecutorService executor = Executors.newFixedThreadPool(10);

will create a pool with 10 available threads. You can then call

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

for each unit of work.

EDIT: I should note that this facility is only available in Java 1.5 and later.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文