在睡眠状态下如何释放线程锁?
当我调用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);
}
}