我使用一个线程池,应该是能够执行数百个并行任务。然而,这些任务通常只执行很少的计算,并且大部分时间都花在等待某些服务器响应上。因此,如果线程池大小包含数百个线程,则只有少数线程处于活动状态,而大多数线程将等待。线程池与许多阻塞任务
我知道,一般这不是线程池使用一个很好的做法,但目前的设计不允许做我的任务异步,使他们能够无需等待服务器的响应返回控制。所以考虑到这个限制,我想我最大的问题是线程堆栈空间的内存消耗增加。
那么,有没有办法用某种轻量线程不会占用多少内存?
我现在有一个JVM选项-Xss来控制堆栈内存,但似乎没有办法控制每个线程池或线程,而不是改变VM内的所有线程,对吗?
而且你有一个更好的解决我的问题有什么建议?
从我所了解的这个线程执行网络通信? – 2012-03-16 13:39:34
是的,但不幸的是我没有通信层的低级控制。 – Lobachevsky 2012-03-19 15:05:08
只需注意:如果线程的总数实际上受到关注,则缓存的缓冲池似乎非常适合您的用例。高速缓存将允许在活动高峰时重新使用线程,并且生存时间将允许它们在给定的时间量之后停止(从而释放资源)。这可以缓解这些问题(如果你真的有一个,例如1000个线程在典型的当前硬件上是完美的)。 – GPI 2017-08-10 14:21:36