我正在使用上述代码来使用两个线程增加计数器,这两个线程独立地获取mut锁并增加计数器。在线程进入此函数后,我遇到了死锁问题。
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 = counter_addr
和++*counter
。 - Jens Gustedt