?在Java里如何减少线程上下文切换?
对于单个java应用来说,减少线程上下文切换发生在多线程环境 。题主问如何减少线程上下文切换,那么我们要环绕这几个问题讨论下 。一,你的应用是cpu密集型还是io密集型?如果你的系统为cpu计算密集型,单个线程的cpu时间片越大越好,这就要求你对线程池的线程数做限制,防止过多线程对资源进行抢夺 。二,你给系统判定的并发上限是多少?每个系统的性能都有上限,过大的负载,会造成性能低下,过小会浪费系统资源,所以需要结合业务得到一个最优值 。
【Java面试篇基础部分,上下文切换】三,你的系统架构是否做了优化?你的系统是否能横向扩展,尽量在网关,代理层进行流量转发,通过一定的负载均衡算法来降低单个系统的请求量 。服务器的并发模型很重要,是一线程一请求,还是IO多路复用,还是异步模型,一线程一请求,在并发量大时,势必会造成线程切换频繁 。四,程序是否业务可以优化?有些场景,优化业务,可以减少程序的处理性能,降低事务的处理时间,是否有cpu轮询,是否在复杂业务中大量使用CAS等等 。
推荐阅读
- 多吃素可将卒中风险降低10%,上一篇10pdizhi99
- 废话比较多篇,多图预警 用Smartisan T2给公交卡充值)
- Minecraft,hpjav
- java懒洋洋,消息队列
- 结构化面试题库,数据结构面试
- 王者荣耀破灭长什么样,语安的王者荣耀系列第一篇
- 大额融资篇之渠道选择,金融中介渠道如何管控
- BiCASL实验室12篇论文在IEEE,ISCAS
- 每章都能当做一篇博士论文,闫令琪
- 拐角果实有什么作用是什么,好家风好家训作文15篇