栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

哪些操作可能导致线程上下文切换?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

哪些操作可能导致线程上下文切换?

1、自发性上下文切换-主要由Java程序导致,让程序中执行一下操作的时候会导致线程自发上下文切换 sleep()、wait()、yield()、join()、park()、synchronized、lock等。

2、非自发性上下文切换一般由于线程时间片用完、虚拟机垃圾回收(STW)导致线程暂停、线程优先级导致等。

3、线程上下文切换的检测方式: vmstat 查看Java程序系统上下文切换频率, pidstat 监控指定进程上下文切换。

4、线程越多,速度不一定越快,一般简单逻辑,执行速度快使用单线程。逻辑相对复杂并且等待时间长、需要大量计算的时候,例如NIO文件读写、图像处理、大数据分析等推荐使用多线程处理。

5、多线程中使用Synchronized 会发生线程上下文切换和进程上下文切换 

参考文档:Java线程的6种状态及切换(透彻讲解)_诚-CSDN博客_java 线程状态

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583992.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号