我正在使用上面的代码来增加一个计数器使用2个线程,这些线程独立采用mut锁定和增量计数器。线程进入这个函数后我面临死锁。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'。 –