锁,避免虚假唤醒,注意死锁

unique_lock<mutex> lock(mtx[m_nHandler]);
				//while (bModilyFlag[m_nHandler])
				//{
					//cv[m_nHandler].wait(lock);
				//}
				

注意,下面的m_bModelModifyFlag[nIndex] = true; 如果反正该锁之前,可能会造成死锁

unique_lock<mutex> lock(m_mtx[nIndex]);
				m_bModelModifyFlag[nIndex] = true;
				bRet = it->second->SetModel(m_pAlgModel);
				m_bModelModifyFlag[nIndex] = false;
				m_cv[nIndex].notify_all();

你可能感兴趣的:(c++)