私は上記のコードを使用して、独立してmutロックと増分カウンタを取る2つのスレッドを使用してカウンタをインクリメントします。スレッドがこの関数に入った後、私はデッドロックに直面しています。pthread_mutex_lockがデッドロックを引き起こす
pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
void *increment_counter(void *counter_addr)
{
int max = MAX_COUNTER_VALUE;
int iter;
int counter;
for(iter=0;iter< max ;iter++)
// LOCK
pthread_mutex_lock(&mut);
counter++;
// UNLOCK
pthread_mutex_unlock(&mut);
return NULL;
}
正確にどこが間違っているのか教えてください。
をおそらくあなたは 'int型*カウンタ= counter_addr'と' ++ * counter'を望んでいました。 –