WEB开发网
开发学院软件开发VC VC++线程同步解析 阅读

VC++线程同步解析

 2012-08-10 14:21:29 来源:WEB开发网   
核心提示:下面给出就是对前面的示例代码经CMutex 类改写后的程序实现清单:// MFC 互斥类对象CMutex g_clsMutex(FALSE, NULL);UINT ThreadProc27(LPVOID pParam){// 等待互斥对象通知g_clsMutex.Lock();// 对共享资源进行写入操作for (in
下面给出就是对前面的示例代码经CMutex 类改写后的程序实现清单:
// MFC 互斥类对象
CMutex g_clsMutex(FALSE, NULL);
UINT ThreadProc27(LPVOID pParam)
{
// 等待互斥对象通知
g_clsMutex.Lock();
// 对共享资源进行写入操作
for (int i = 0; i < 10; i++)
{
g_cArray[i] = 'a';
Sleep(1);
}
// 释放互斥对象
g_clsMutex.Unlock();
return 0;
}
UINT ThreadProc28(LPVOID pParam)
{
// 等待互斥对象通知
g_clsMutex.Lock();
// 对共享资源进行写入操作
for (int i = 0; i < 10; i++)
{
g_cArray[10 - i - 1] = 'b';
Sleep(1);
}
// 释放互斥对象
g_clsMutex.Unlock();
return 0;
}
……
void CSample08View::OnMutexMfc()
{
// 启动线程
AfxBeginThread(ThreadProc27, NULL);
AfxBeginThread(ThreadProc28, NULL);
// 等待计算完毕
Sleep(300);
// 报告计算结果
CString sResult = CString(g_cArray);
AfxMessageBox(sResult);
}

上一页  4 5 6 7 8 9 

Tags:VC 线程 同步

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接