bash:fifo队列与群

时间:2019-04-16 21:14:26

标签: bash fifo flock

可以将群设置为fifo队列,而不是“谁先抓它”锁定吗?例如,如果三个进程正在运行以下代码:

exec 200>/var/tmp/mylock
flock -e 200     # blocks until lock is obtained
echo "($$) has the lock"
sleep 5          # replace with awesome code
echo "($$) releasing the lock"
flock -u 200 && echo "($$) released the lock"
# Other code that doesn't require a lock

当第一个进程获得锁时,它将进入睡眠状态。然后,启动第二个和第三个实例,它们都等待锁定。但是,即使第二个进程在第三个进程之前命中flock -e 200,第三个进程仍可能在第二个进程之前执行。一旦羊群被释放,就可以争夺它,而不必尊敬谁先尝试获得它。

是否可以调整此行为,以确保尝试获取忙锁的第一个进程是释放锁时执行的第一个进程?

0 个答案:

没有答案