搜索墙首页  编程技术  java  asp  ajax  php  c/c#/c++  数据库  oracle  mysql  db2  操作系统  windows  linux  股吧
首页 > 操作系统 > linux
 1         
1楼  ytz 2010-04-10

自旋锁用于防止多个任务同时对可执行队列进行操作。它们起的作用就像门钥匙一样。最开始,有一个任
务到了大门前,它拿起钥匙开了门,走进去以后回身把大门锁上。如果这时第二个任务到了大门前,它发
现门锁着(已经有一个进程在里面了),就坐在门口等,知道第一个任务走出来交出钥匙。这个等待过程
自锁,因为实际上任务是在不停地执行一个循环操作来查询钥匙是否被交出来了。
 
现在想象一下,一号任务希望先锁住可执行队列甲,然后再去锁队列乙,而二号任务想先锁可执行队列乙
,然后再去锁甲。如果在一号任务锁住甲的同时二号任务锁住了乙。现在,一号任务再去尝试着锁乙而二
号任务去锁甲。两个都变成了不可完成的任务,因为它俩无论谁需要的那把锁,都掌握在另一个的手中。
两个任务就这样一起永远的等待下去。就像相向而行的汽车僵持会造成交通堵塞一样,这种对锁的无序使
用会导致任务之间互相等待,不死不休,也就是死锁
 
如果两个任务用相同的顺序操作锁,这种局面就不会产生了。
 1         
您的发言将按有关规定都会存档,您须为所发表后果负责,请您遵纪守法并注意语言文明。
标题:自旋锁和死锁
热门关注
标题回复点击
d7se77dy/77dy电影. 77dy是77dy宽频和77dy1331673
黄网最新地址0903
IPP2P模块修改版,最新0.99.16440828
zeh 4.p patch on RHEL 30744
将 Puppy Linux 4.00 安装在U盘里 打造随身系统2695
Apache 超全0689
gcc glibc kernel 版本兼容性 reference0684
[保留]7667
d7se77dy/77dy电影. 77dy是77dy宽频和77dy156650
linux 有啥低级格式化硬盘的软件1644
搜索墙@2009 www.pkwall.com all rights reserved QQ:276471788 [京ICP备09111534号]
声明:本站部分数据来源于网络,仅供参考,如有版权问题,请联系我们,我们将及时删除!转载本站请注明来源