apue 11.6节关于死锁问题
p301避免死锁有一句话:如果线程试图对同一个互斥量加锁两次,那么它自身就会陷入死锁状态。
这是为什么???? 这就好比以下测试代码的情况#include <string.h>
#include <stdio.h>
int test_lock(int *lock)
{
while(*lock);
*lock = 1;
return 0;
}
int test_un_lock(int *lock)
{
*lock = 0;
return 0;
}
int main(int argc, char **argv)
{
int lock = 0;
test_lock(&lock);
test_lock(&lock);
puts("just for test!");
test_un_lock(&lock);
test_un_lock(&lock);
return 0;
}测试代码不严谨,具体查看thread库的实现。
页:
[1]