在《Java并发编程的艺术》这本书的1.1.4章节"减少上下文切换实战"中举了一个例子,起初dump jboss进程时发现有300+个worker线程处于 waiting 状态,然后通过减少线程池的线程最大数量来减少处于 waiting 状态的线程数量,意思是这样就能减少上下文切换的次数了。
但是我有一点不太明白,如果大量线程处于 waiting 状态而请求数又少的话,那么OS从300个waiting线程中选一个处理请求跟从100个 waiting 线程中选一个不都是只有1次上下文切换吗;如果新到10个请求,那么无论你处于 waiting 的线程有多少,进行上下文切换的也只有个10个线程吧,线程数量多增加的是内存占用,跟调度开销有什么直接关系吗
添加回答
举报
0/150
提交
取消