LuAITools.com
提交工具
🧲AI
Deadlock

死锁

多个 Agent 互相卡着对方要用的资源,谁都不让谁,整个系统僵在原地动不了。

死锁是什么?

两个人都堵在窄门前面:A 说「你先过」,B 说「不,你先过」,结果谁也过不去。死锁(Deadlock),就是多个 Agent 互相等待对方手里的资源或动作,形成「你等我、我等你」的僵局,系统永远卡住。

死锁是怎么发生的?

资源被占着不放
Agent A 锁住了文件 X,想用文件 Y;Agent B 锁住了文件 Y,想用文件 X。A 等 B 放 Y,B 等 A 放 X——死结。
互相等对方先行动
两个 Agent 都在等对方的回复才肯继续,结果两个都干等。
循环依赖
三个或更多 Agent 排成一圈,每个都在等下一个,转不出去。

怎么发现死锁?

最典型的表现:任务进度条不动了、日志里全是「等待中」、请求一直超时。监控系统可以通过「等待关系图」检测是否存在环路。

怎么预防和破解?

统一加锁顺序
规定所有 Agent 按固定顺序申请资源,避免交叉等待。
设置超时
等不到就放弃、重试或上报,别无限期干等。
强制中断
实在僵住时,杀掉其中一个等待方,让环路断开。
减少共享资源
尽量让每个 Agent 用自己的局部资源,减少互相抢的情况。

一句话记住:死锁,就是 Agent 们「互相等对方先走」,结果谁都没走。

评论