首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎样控制这样的四个线程?解决办法

2012-03-15 
怎样控制这样的四个线程?//启动四个线程,如何控制线程才能让四个线程同时工作,即:同时拷贝并比较大小。为了

怎样控制这样的四个线程?
//启动四个线程,如何控制线程才能让四个线程同时工作,即:同时拷贝并比较大小。为了防止线程A,C和线程B,D数据冲突,怎样控制   ?
A   =   AfxBeginThread(ThreadFunc1,this);    
B   =   AfxBeginThread(ThreadFunc2,this);  
C   =   AfxBeginThread(ThreadFunc1,this);    
D   =   AfxBeginThread(ThreadFunc2,this);

UINT   ThreadFunc1(LPVOID   lParam)
{
CFWConfigDlg   *Config_dlg   =   (CFWConfigDlg*)lParam;
                  //从Path1拷贝到Path2,并比较数据是否相同
Config_dlg   ->   Copy_Compare_File(Path1,   Path2);
}
UINT   ThreadFunc2(LPVOID   lParam)
{
CFWConfigDlg   *Config_dlg   =   (CFWConfigDlg*)lParam;
                  //从Path2拷贝到Path1,并比较数据是否相同
Config_dlg   ->   Copy_Compare_File(Path2,   Path1);
}
bool   Generate_File(char*   m_From_path,   char*   m_to_path)
{

}


[解决办法]
用信号量或互斥体控制临界资源的读写,避免脏读,和写竞争。
[解决办法]
哈哈,到这你要是用ACE优势就体现出来了吧 定义一个 ACE_Process_Mutex m_Mutex;
在可能会出现公用的数据前后加上m_Mutex.acquire()和m_Mutex.release()就OK了

热点排行