Java线程池功能

标签 java multithreading

我需要制作一个具有有限数量线程的程序(当前使用 newFixedThreadPool),但我遇到的问题是所有线程都是从一开始就创建的,以惊人的速度填满内存。

我希望阻止这种情况发生。线程只能在执行前不久创建。

例如:我调用该程序并指示它使用池中的 2 个线程。程序应该立即(显然)创建并启动前 2 个线程,创建下 2 个线程以等待前 2 个线程,然后等待前 2 个线程中的一个或两个结束执行。

我考虑过扩展执行器或固定线程池等。但是我不知道如何从那里开始,并怀疑这是最好的解决方案。最简单的方法是让我的主线程间歇性 hibernate ,这也不是很好......

提前致谢!

最佳答案

您是否尝试过查看 ThreadPoolExecutor ?使用正确的构造函数参数,您可以轻松调整创建的线程的数量和保持 Activity 时间。

关于Java线程池功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2683047/

相关文章:

java - 如何为我的图表创建可运行的线程?

java - 试图抽象一些东西,我是否试图过度简化?

java - 如何在java中获取上次修改时间和当前系统日期时间差

java - 如何设置主线程的堆栈大小

iphone - tableViewController 中的多线程奇怪延迟

javascript - javascript 中是否需要互斥体?

java - 将 JFrame 中的现有 JPanel 替换为另一个 JPanel 的正确方法是什么?

javascript - 在 Angular 中动态传递接口(interface)作为参数

c++ - Windows 多任务破坏了 OpenCL 性能

java - 如何在 Java 中正确实现玻璃面板?