如何在循环中使用sem_wait

时间:2019-12-20 09:14:16

标签: c pthreads semaphore

我正在尝试编写多线程程序。两个线程使用同一数组。对于阻止,我使用sem_wait和sem_post。问题是线程应该工作,直到用户停止程序为止。 如果我这样写:

 sem_wait(&sem);
 /*code*/
 sem_post(&sem);

该锁只能使用一次。我使用无穷循环:

while(1){
      sem_wait(&sem);
      /* code */
      sem_post(&sem);
}

但是我希望有另一种更合乎逻辑的方式来做到这一点。请说明sem_wait和sem_post内部如何工作,并帮助我找到这种方式。

0 个答案:

没有答案