c*****u 发帖数: 530 | 1 【 以下文字转载自 JobHunting 讨论区 】
发信人: carolfu (最爱Angela), 信区: JobHunting
标 题: 面试问题一问
发信站: BBS 未名空间站 (Thu Apr 12 18:45:34 2007)
Write a program that deadlocks in C++. | e******r 发帖数: 220 | 2 来攒攒RP, 欢迎指正.
int count=2;
int waiting=0;
countingSemaphore mutex = new countingSemaphore(1);
countingSemaphore resourceAvailable = new countingSemaphore(0);
Thread i{
mutex.p();
if(count>0){
count--;
mutex.v();
}
else{
waiting++;
resourceAvailable.p(); // 这里产生deadlock
}
mutex.p();
if(waiting>0){
--waiting;
resourceAvailable.v();
}
else count++;
mutex.v();
}
【在 c*****u 的大作中提到】 : 【 以下文字转载自 JobHunting 讨论区 】 : 发信人: carolfu (最爱Angela), 信区: JobHunting : 标 题: 面试问题一问 : 发信站: BBS 未名空间站 (Thu Apr 12 18:45:34 2007) : Write a program that deadlocks in C++.
|
|