为了账号安全,请及时绑定邮箱和手机立即绑定

Java线程上下文切换开销大小与线程数量的关系?

Java线程上下文切换开销大小与线程数量的关系?

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

2 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

原因很简单,因为操作系统需要对线程进行维护的(而不论这个线程出于什么样的状态)

所以线程越多,操作系统的开销确实是越大的

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 1065 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信