大量WAITING状态的线程会增加上下文切换的次数吗
按照你的理解.
那么问题来了,除了CPU还有谁能够知道啥时候你的waiting的线程要变成了runable呢??
嗯,一定是CPU里头还有一个CPU.
■网友
太老了,只要是线程就会有上下文切换的调度,所以应该控制线程的数量,这个看vert.x就知道了
■网友
我的理解,假设你的线程配置多了,如果有大量的WAITING,那么肯定是由RUNNABLE到WAITING去的,那么肯定经历了上下文切换,还有,假设有操作是NotifyAll(),那么所有的线程又都恢复成RUNNABLE状态,然后再经历上下文切换,大部分又回到WAITING状态,所以减少WAITING线程能减少上下文切换的次数,你的问题正好相反。
■网友
只有就绪状态和运行状态的线程才会分配CPU时间片,按照作者的思想,应该是所有waiting状态的线程变成runnable后,runnable变成running又变成waiting会增加无用的线程切换。同意@Saytime。
■网友
深入学习
■网友
线程的状态包括 就绪状态 运行状态 挂起状态 和退出状态
楼主所说的状态应该是线程在等待某个条件引起了休眠,当条件满足就有可能引起调度,或者某些可中断的睡眠过程中收到信号也可能发生调度,如果两个条件都不满足 线程就会一直睡下去,不会调度就不会引起上下文切换,所以具体问题具体分析
■网友
不止是唤醒会上下文切换,中断也会,我猜书上的意思是如果wait线程过多,要完成这些wait的任务,可能会增加上下文切换的次数,所以编程的时候应该避免让过多线程wait,避免造成额外开销。
渣渣乱讲,有错处请各位大佬指出。
■网友
【大量WAITING状态的线程会增加上下文切换的次数吗】 同问,而且对线程上下文切换概念比较模糊。普通加锁会导致线程上下文切换开销,而CAS又是如何做到不切换线程实现多线程调度的呢?假设4核cpu,提交4线程,而加锁会导致这4个线程调度的时候存在上下文切换的代价,而CAS则是4核心每个核心1个线程处于RUNNING状态并且不断轮询CAS从而比加锁减少了这3次的线程上下文切换时间?不知道理解对不对,望各位解答?
推荐阅读
- 它浑身是毒,入侵我国却被大量种植,如今年产量高达55万吨
- 用泡沫箱来养多肉老桩?只要我们把细节做好,同样可以养出状态来
- 换个角度看车市|深度:长城炮越野皮卡1.5万公里长测之技术状态汇总
- 汽车市场|「数据报告」比亚迪外供底盘数量激增,大量车企同时配套比亚迪电池电机
- 蔡依林|林峯近照曝光,发福状态不敌大1岁刘涛,身高也被疑作假
- win10激活的问题
- 迪丽热巴|迪丽热巴状态不佳,撞脸马苏?
- 毕福剑|61岁毕福剑被偶遇,身材走样啤酒肚辣眼,拍照状态大不如前
- 林志玲|46岁林志玲撞脸萧蔷,苹果肌高耸脸颊圆润,手术后状态不佳?
- |49岁黎姿卸妆晒素颜,状态超好,身后豪宅浴室令人羡慕
