休眠时释放线程的锁定

时间:2019-04-17 19:31:57

标签: c multithreading operating-system sleep

在睡眠状态下如何释放线程锁?

当我调用pthread_join()时,它将运行得很好,但是我必须创建多个线程,由于它们的并发性,我无法调用pthread_join()。我该如何解决此问题而无需致电加入。

pthread_mutex_t mut1;
pthread_mutex_init(&mut1, NULL);

void* funA(void* arg){    
      while(pthread_mutex_trylock(&mut1) != 0);
      sleep(10);
      // resources sharing
      pthread_mutex_unlock(&mut1);
      pthread_exit(NULL);
}

int main(){
      pthread_t id[9];
      for(int i = 0; i<9; i++){
          pthread_create(&id[i], NULL, &funA, NULL);
      }
}

0 个答案:

没有答案