- 1
- 2
- 3
- 4
- 5
锁竞争带来的排队延迟.docx
资料介绍
什么是锁竞争与排队延迟
在多线程并发编程、多进程资源调度场景中,锁是用来保证共享资源互斥访问的核心同步机制。当多个执行单元(线程、进程)同时尝试获取同一把锁时,只有一个执行单元能够成功持有锁,其余执行单元都需要进入等待队列排队等候,这个过程就会产生锁竞争,而线程/进程因为等待锁释放所耗费的时间,就是锁竞争带来的排队延迟。
简单来说,排队延迟的本质就是:多个任务抢同一个稀缺资源(被锁保护的共享资源),没抢到的任务只能停下来等,白白浪费掉的执行时间就是排队延迟。锁竞争越激烈,等待的任务越多,排队延迟就越长,最终会导致整个系统的吞吐量下降、响应时间变长。
锁竞争排队延迟产生的核心原因
1. 共享资源的互斥性要求
锁设计的初衷就是保证同一时间只有一个执行单元访问共享资源,比如修改同一个全局变量、操作同一个文件句柄、更新同一条数据库记录,这种互斥性本身就决定了同一时刻多个请求必然只能有一个成功,剩下的必须排队。互斥性是锁存在的基础,也是排队延迟不可避免的根源。
2. 锁持有时间过长
如果持有锁的执行单元,在锁范围内执行了耗时较长的操作,比如锁内做IO读写、复杂计算、远程调用,就会导致锁被长时间占用,后面排队的所有等待线程都会拉长等待时间,放大排队延迟。举个简单例子:数据库的行锁,如果一个事务拿到行锁之后,执行10秒的业务逻辑才提交事务释放锁,那么后面所有想要修改这一行记录的请求,都至少要排队等10秒,排队延迟被显著放大。
部分文件列表
| 文件名 | 大小 |
| 锁竞争带来的排队延迟.docx | 15K |
最新上传
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:江岚
-
21ic下载 打赏310.00元 3天前
用户:mulanhk
-
21ic下载 打赏320.00元 3天前
用户:jh03551
-
21ic下载 打赏220.00元 3天前
用户:jh0355
-
21ic下载 打赏210.00元 3天前
用户:潇潇江南
-
21ic下载 打赏210.00元 3天前
用户:小猫做电路
-
21ic下载 打赏60.00元 3天前
用户:gsy幸运
-
21ic下载 打赏60.00元 3天前
用户:zhengdai
-
21ic下载 打赏60.00元 3天前
用户:lanmukk
-
21ic下载 打赏60.00元 3天前
用户:烟雨
-
21ic下载 打赏20.00元 3天前
用户:w993263495
-
21ic下载 打赏30.00元 3天前
用户:sun2152
-
21ic下载 打赏20.00元 3天前
用户:w178191520
-
21ic下载 打赏20.00元 3天前
用户:liqiang9090
-
21ic下载 打赏20.00元 3天前
用户:xuzhen1
-
21ic下载 打赏35.00元 3天前
用户:有理想666
-
21ic下载 打赏15.00元 3天前
用户:w1966891335
-
21ic下载 打赏15.00元 3天前
用户:x15580286248
-
21ic下载 打赏25.00元 3天前
用户:qiufeng0299
-
21ic下载 打赏15.00元 3天前
用户:kk1957135547
-
21ic下载 打赏10.00元 3天前
用户:qingsong08
-
21ic下载 打赏10.00元 3天前
用户:电工老刘
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
ZENGYIBIN 打赏1.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:STM32的数字万用表
-
21ic小能手 打赏5.00元 3天前
-
kuangwy 打赏1.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:触控无极台灯控制方案
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:51单片机的汽车雨刷器




全部评论(0)