我正在尝试编写多线程程序。两个线程使用同一数组。对于阻止,我使用sem_wait和sem_post。问题是线程应该工作,直到用户停止程序为止。 如果我这样写:
sem_wait(&sem);
/*code*/
sem_post(&sem);
该锁只能使用一次。我使用无穷循环:
while(1){
sem_wait(&sem);
/* code */
sem_post(&sem);
}
但是我希望有另一种更合乎逻辑的方式来做到这一点。请说明sem_wait和sem_post内部如何工作,并帮助我找到这种方式。