【发布时间】:2013-01-20 10:02:14
【问题描述】:
我想知道为什么这个程序会死锁
void transfer(int from, into to, double amount) {
sem_t *sem_from, *sem_to;
sem_from=get_sem(from); //function that obtains the semaphore from bank account argument
sem_to=get_sem(to);
sem_wait(sem_from);
sem_wait(sem_to);
withdraw(from, amount);
deposit(to, amount);
sem_post(sem_to);
sem_post(sem_from);
}
谢谢。
【问题讨论】:
-
我们不是物理 - 需要更多信息。
-
很可能是由于获取信号量的顺序。
-
get_sem是做什么的?
标签: c concurrency