阅读:1740回复:5
help:问一个自旋锁基本问题
对同一个临界区, 分别在2个线程中加自旋锁访问
如果在1个线程中已经加锁, 在第一个线程还没有解锁前,第2个也尝试加锁,是否会导致死锁 如果不会导致死锁,是否是第二线程一直等到第一个线程放锁后才执行 感谢 |
|
|
沙发#
发布于:2008-08-29 18:07
你的理解是正确的
|
|
板凳#
发布于:2008-08-29 19:06
1 主要针对的smp设计的自旋锁。他不会引起进程睡眠,没有进程列表,关掉中断。
2 对up内核,如果是抢占模式的,那么可以认为up是smp的。主要是在临界区禁止抢占。 3 对up内核,如果是非抢占模式的,那么spinlock是无用的。因为否则会引起系统挂起。 |
|
|
地板#
发布于:2008-09-03 14:06
线程不需要用自旋锁,太奢侈了
|
|
地下室#
发布于:2008-09-04 10:09
主要是多CPU
线程不需要用自旋锁,太奢侈了? -------------------------------------------- 在多CPU环境下,是不是只要有可能多个地方访问同一变量,都应该使用自旋锁? |
|
|
5楼#
发布于:2008-09-04 16:35
如果只有1个spin lock,你用怎么能同时有2个线程acquire? 死锁一般是多个锁按不恰当的顺序获取造成的。
|
|