mutex 不要嵌套使用,即mutex.lock();mutex.unlock();
为什么要成对使用。否则多线程情况下,可能造成死锁。
mutex g_mutex1, g_mutex2;
void add1(int *p1, int *p2){
//多线程里引用类型函数,模板,避免类型转换尽量用指针,少使用引用
for (int i = 0; i<COUNT; i++) {
/*可能死锁的情况*/
// g_mutex1.lock();
// p1++;
// g_mutex2.lock();
// p2++;
// g_mutex1.unlock();
// g_mutex2.unlock();
g_mutex1.lock();
(*p1)++;
g_mutex1.unlock();
g_mutex2