私はマルチスレッドが初めてで、セグメンテーション違反で立ち往生しています。私は使っている
void addfunction(void *xyz)
{
flag_TO_go = 1;
pthread_cond_broadcast(&check_Queue2);
pthread_mutex_unlock(&get_mutex);
}
void delete_thread(void *abc)
{
while(1){
pthread_mutex_lock(&get_mutex);
while (!flag_TO_go ) {//condition variable
pthread_cond_wait(&check, &get_mutex);
}
flag_To_go= 1;
//things to do
//delete elemenst from a linked list
pthread_mutex_unlock(&get_mutex);
}
}
最初の要素の削除後にリストに要素がないため、セグメンテーション違反が発生しています。しかし、私のスレッドはロックを取得してチェックしています cond wait を使用する他の方法はありますか。
忙しく待たずにこれを行う方法を提案できる人はいますか?