linux环境下,哪些操作有可能引起线程切换
发布时间 - 2019-12-19 00:00:00 点击率:次linux采用一对一的线程模型,用户线程切换与内核线程切换之间的差别非常小。同时,如果忽略用户主动放弃用户线程的执行权(yield)带来的开销,则只需要考虑内核线程切换的开销。 (推荐学习:linux教程)
注意,这里仅仅是为了帮助理解做出的简化。实际上,用户线程库在用户线程的调度、同步等过程中做了很多工作,这部分开销不能忽略。
如JVM对Thread#yield()的解释:如果底层OS不支持yield的语义,则JVM让用户线程自旋至时间片结束,线程被动切换,以达到相似的效果。
什么引起线程切换
时间片轮转
线程阻塞
线程主动放弃时间片
直接开销
直接开销是线程
切换本身引起的,无可避免,必然发生。
用户态与内核态的切换
线程切换只能在内核态完成,如果当前用户处于用户态,则必然引起用户态与内核态的切换。(“用户态与内核态的切换”具体带来什么成本???)
上下文切换
前面说线程(或者叫做进程都随意)信息需要用一个task_struct保存,线程切换时,必然需要将旧线程的task_struct从内核切出,将新线程的切入,带来上下文切换。除此之外,还需要切换寄存器、程序计数器、线程栈(包括操作栈、数据栈)等。
线程调度算法
线程调度算法需要管理线程的状态、等待条件等,如果根据优先级调度,则还需要维护优先级队列。如果线程切换比较频繁,该成本不容小觑。
间接开销
间接开销是直接开销的副作用,取决于系统实现和用户代码实现。
缓存缺失
切换进程,需要执行新逻辑。如果二者的访问的地址空间不相近,则会引起缓存缺失,具体影响范围取决于系统实现和用户代码实现。如果系统的缓存较大,则能减小缓存缺失的影响;如果用户线程访问数据的地址空间接近,则本身的缓存缺失率也比较低。
# linux
# 还需要
# 系统实现
# 能在
# 这部
# 不支持
# 只需要
# 较低
# 则会
# 需要用
# 中做
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在宝塔面板创建新站点?
iOS UIView常见属性方法小结
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
如何用AI帮你把自己的生活经历写成一个有趣的故事?
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
如何在建站之星网店版论坛获取技术支持?
如何用PHP快速搭建高效网站?分步指南
无锡营销型网站制作公司,无锡网选车牌流程?
如何构建满足综合性能需求的优质建站方案?
如何在七牛云存储上搭建网站并设置自定义域名?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
Laravel如何为API生成Swagger或OpenAPI文档
清除minerd进程的简单方法
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
Laravel如何创建自定义Artisan命令?(代码示例)
如何在阿里云域名上完成建站全流程?
EditPlus中的正则表达式实战(6)
Laravel观察者模式如何使用_Laravel Model Observer配置
打造顶配客厅影院,这份100寸电视推荐名单请查收
Python正则表达式进阶教程_复杂匹配与分组替换解析
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
制作公司内部网站有哪些,内网如何建网站?
googleplay官方入口在哪里_Google Play官方商店快速入口指南
java ZXing生成二维码及条码实例分享
如何在阿里云部署织梦网站?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何用PHP快速搭建CMS系统?
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
JS实现鼠标移上去显示图片或微信二维码
如何在Windows虚拟主机上快速搭建网站?
利用JavaScript实现拖拽改变元素大小
Swift开发中switch语句值绑定模式
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
再谈Python中的字符串与字符编码(推荐)
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
高端网站建设与定制开发一站式解决方案 中企动力
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
BootStrap整体框架之基础布局组件
北京企业网站设计制作公司,北京铁路集团官方网站?
三星网站视频制作教程下载,三星w23网页如何全屏?
如何在阿里云虚拟主机上快速搭建个人网站?
canvas 画布在主流浏览器中的尺寸限制详细介绍
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Laravel如何使用Blade组件和插槽?(Component代码示例)
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
制作旅游网站html,怎样注册旅游网站?
java获取注册ip实例

