【发布时间】:2012-09-20 23:07:22
【问题描述】:
我正在使用上面的代码使用 2 个线程来递增计数器,这些线程独立地获取 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。