我需要制作一个具有有限数量线程的程序(当前使用 newFixedThreadPool),但我遇到的问题是所有线程都是从一开始就创建的,以惊人的速度填满内存。
我希望阻止这种情况发生。线程只能在执行前不久创建。
例如:我调用该程序并指示它使用池中的 2 个线程。程序应该立即(显然)创建并启动前 2 个线程,创建下 2 个线程以等待前 2 个线程,然后等待前 2 个线程中的一个或两个结束执行。
我考虑过扩展执行器或固定线程池等。但是我不知道如何从那里开始,并怀疑这是最好的解决方案。最简单的方法是让我的主线程间歇性 hibernate ,这也不是很好......
提前致谢!
最佳答案
您是否尝试过查看 ThreadPoolExecutor ?使用正确的构造函数参数,您可以轻松调整创建的线程的数量和保持 Activity 时间。
关于Java线程池功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2683047/