如何避免死锁和使用过多线程?
|
使用“ 0”是减少创建过多线程的开销的一种好方法,但是如果所有线程都在等待另一个作业,而该作业本身正在等待池中的空闲线程,则可能导致死锁。有时可以使用多个线程池解决问题,但有时不能解决。我正在寻找类似于ѭ1的东西,除非所有池线程都被阻塞-在这种情况下,尽管池已达到预定义的界限,但池仍应增长。有这样的东西吗?
实际上,僵局在这里并不那么重要。真正的问题是“如何管理正在运行的线程数”而不是它们的总数。当试图保持CPU的充分利用而不产生不必要的许多线程时,这也可能很有趣。
没有找到相关结果
已邀请:
3 个回复
拟蓬
蹄寄噬非芹
貉骂
缓存的线程池将检查是否有可用线程。如果存在,线程池将重新使用该线程。如果不是,则线程池将创建一个新线程。线程的生存时间为60秒,因此60秒后,多余的线程将被终止。