为什么锁会降低程序的性能?

_薛定谔猫 2019-03-28 03:05:21
我之前看过文章说的是锁降低性能降低在多个线程争夺锁,内核态和用户态之间的切换,想问一下切换在哪?锁是在内核中管理的么?
...全文
1347 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
JFET238 2019-08-06
  • 打赏
  • 举报
回复
加解锁和线程切换 都要系统开销的
lyfll 2019-07-17
  • 打赏
  • 举报
回复
每一个请求都会占用一个线程,例如,当请求量过大,此服务器设计规定可跑1000线程,当并发达或者请求量同时超过1000线程时,并且系统未处理完请求,这些线程就是独占,所有超过1000的线程就要进行排队,倒置线程堵塞。
zhgure 2019-07-16
  • 打赏
  • 举报
回复
楼上说的很好了,补充一下二楼说的,切换发生在B阻塞发生时,本来B线程是当前正在占用CPU的,由于发生了阻塞,所以B线程被切换了,CPU又调度到别的线程执行。
zgsdgrr 2019-07-10
  • 打赏
  • 举报
回复
因为就像是马路上的红绿,汽车跑到红灯的时候会停下来,绿灯才能继续跑
john_liqinghan 2019-04-26
  • 打赏
  • 举报
回复
linux上下文切换的代价是很大的。
xh.wang 2019-04-24
  • 打赏
  • 举报
回复
应该这么理解,比如2个线程用一个锁。当A先调用锁,锁住,然后进行处理。这时候B假如要用该锁,那就必须等A解锁才可以使用,这个时候B是阻塞的。
微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”。 “微信小程序系统教程[阶段]全套课程”包含: 1.微信小程序系统教程[阶段]_客服消息 2.微信小程序系统教程[阶段]_微信支付 3.微信小程序系统教程[阶段]_九宝电商系统 学习“微信小程序系统教程[阶段]”要求有微信小程序的基础。建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]”,后在报名“微信小程序系统教程[阶段]”。 阶段讲解的客服消息,是针对小程序的。后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。 微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以请教老师。购买课程后请联系老师,提供单号,给你源程序。 九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小程序相关知识,还可以修改后上线。 “微信小程序系统教程[中级阶段]——核心技术”重点讲解微信小程序事件、组件、API 微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 购买课程的同学,可赠送就九宝老师编写的《微信小程序开发宝典》。 购课请咨询qq2326321088

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧