老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

VC++線程同步(三)臨界區使用例子

                    臨界區(Crtical Section)同步對象

東河網站制作公司哪家好,找成都創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、響應式網站建設等網站項目制作,到程序開發,運營維護。成都創新互聯公司于2013年創立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯公司

用戶模式下的同步對象

Win32中,最容易使用的一個同步機制就是(關鍵段)Critical Section, 某些共享資源具有互斥性,也就是它要求被互斥地使用,他也是用于資源的互斥, 在大部分情況下,使用臨界區替換Mutex(Mutex是內核模式下的同步對象)。

局限性:他只能用于同步單個進程中的線程。

在任何同步機制當中,無論是哪個操作系統下,都不要

長時間的鎖住資源,如果一直鎖定資源,就會一致阻止其他線程的執行,

使整個程序,處于完全停止的狀態。

不要在critical section中調用Sleep或任何Wait等待之類的api函數.

、、、  臨界區很容器造成資源死鎖.

                        相關Api函數

1初始化一個臨界區

InitializeCriticalSection函數

VOID InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection //critical section);

lpCriticalSection  臨界資源對象指針

2釋放一個臨界區對象來釋放所有的資源,使得不再擁有這個對象

void DeleteCriticalSection(

LPCRITICAL_SECTION lpCriticalSection

)

lpCriticalSection 指向一個不再需要的CRITICAL_SECTION變量

3 進入臨界區,也就意味著我進行加鎖,在他之后已經加鎖了

void EnterCriticalSection(

LPCRITICAL_SECTION lpCriticalSection

)

lpCriticalSection  臨界區資源對象指針

4 離開臨界區 ,也就意味著解鎖,所有的資源都處于安全狀態

void LeaveCriticalSection(

LPCRITICAL_SECTION lpCriticalSection

)

lpCriticalSection  臨界區資源對象指針

              臨界區和Mutex的區別

臨界區是用戶模式下的,優點是速度快,缺點是容易線程死鎖。他

不能跨進程,而Mutex內核模式下的同步對象是可以進行,安全的跨進程操作,但是他相對與用戶模式,速度比較慢,  因此正常情況下,使用

臨界區。

             

                臨界區         Mutex

1  速度:         快              慢

2  跨進程:     不可以           可以

3  聲明:    CRITICAL_SECTION cs   HANDLE hmtx;

4  初始化: InitializeCriticalSection(&cs) hmtx = CreateMutex(NULL,FALSE,NULL);

5  清理:  CloseHandle            DeleteCriticalSection

6 無限的等待:EnterCriticalSection(&cs)   WaitForSingleObject(,INFINITE).  

7 不等待(不阻塞)TryEnterCriticalSection(&cs) WaitForSingleObject(,0);  

8 任意時間 臨界區是沒有這個功能   WaitForSingleObject(,1000)

9 釋放(解鎖)LeaveCriticalSection(&cs)

ReleaseMutex(.);

                        臨界區使用實例

首先定義一個全局的CRITICAL_SECTION g_cs;

在Create里初始化臨界區

case WM_CREATE:
{
int cyChar = HIWORD(GetDialogBaseUnits());
thrParams2.hwnd = hWnd;
thrParams2.cyChar = cyChar;
//初始化臨界區
InitializeCriticalSection(&g_cs);
//創建線程
HANDLE handleTicket1 = CreateThread(NULL, 0, ThrCalcProc1, &thrParams2, 0, NULL);
HANDLE handleTicket2 = CreateThread(NULL, 0, ThrCalcPro2, &thrParams2, 0, NULL);
//關閉線程句柄
CloseHandle(handleTicket1);
CloseHandle(handleTicket2);
}

case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO:  在此添加任意繪圖代碼...
TextOut(hdc, clientCX / 4, 0, _T("使用臨界區實現同步"), lstrlen(_T("使用臨界區實現同步")));
EndPaint(hWnd, &ps);
break;

case WM_DESTROY:

//清理臨界區的指針內存
DeleteCriticalSection(&g_cs);
PostQuitMessage(0);
break;

然后觀察線程的回調函數

DWORD WINAPI ThrCalcProc1(LPVOID lp)
{
//獲得結構體指針
PPARAMS param2 = static_cast(lp);
//生成隨機數種子
srand(time(NULL));
TCHAR szBuf[50] = { 0 };
HDC hdc;
while (true)
{
//休眠一秒  不要在進入臨界區 休眠
Sleep(1000);
//進入臨界區 (加鎖)
EnterCriticalSection(&g_cs);
//g_subjectNum是數字題的數量
if (g_subjectNum > 0)
{
//檢查文本是否超出窗口顯示范圍,如果是就刷新窗口,并重新設置iLine值
//g_iLine2 = CheckTextRange(param2->hwnd, param2->cyChar, param2->cyChar,g_iLine2);
//隨機產生兩個數
int lval = rand() % 100;
int rval = rand() % 100;
int res = lval + rval;
//把解鎖 繪制到窗口上
wsprintf(szBuf, _T("線程1第%d題:%d + %d = %d"),g_subjectNum--,lval,rval,res);
hdc = GetDC(param2->hwnd);
TextOut(hdc, 0, g_iLine2*param2->cyChar,
szBuf, lstrlen(szBuf));
ReleaseDC(param2->hwnd,hdc);
g_iLine2++;
//解鎖
LeaveCriticalSection(&g_cs);
}
else
{ 
//解鎖
LeaveCriticalSection(&g_cs);
break;
}
}
return 0;
}

VC++線程同步(三) 臨界區使用例子

代碼下載地址:http://down.51cto.com/data/2329647


文章標題:VC++線程同步(三)臨界區使用例子
文章出自:http://www.xueling.net.cn/article/gipgse.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 另类zoofilia杂交videos | 色站在线 | 欧美国产日韩中文 | 国产麻豆成人传媒免费观看 | 无遮挡h肉动漫在线观看 | 国产成人精品优优AV | 欧美视频网站 | 亚洲欧美闷骚影院 | 动漫人物交性h的视频 | 91性视频 | 欧洲熟妇色XXXX欧美老妇多毛 | 555夜色666亚洲国产免 | 亚洲激情一二三区 | 国产人妖在线播放网址 | 国产亚av手机在线观看 | 秋霞无码AV一区二区三区 | 亚洲av日韩av激情亚洲 | 精品欧洲av无码一区二区14 | 亚洲精品网站在线观看 | 国产在线一区二区三区在线 | 亚洲免费一级视频 | 国产资源视频在线观看 | 91少妇香蕉久久精 | 亚洲精品日本无v一区 | 亚洲中文字幕日产无码成人片 | 中文字幕AAV | 亚洲成人av一区二区三区 | 成片免费观看视频999 | 久操视频在线 | 久久久精品人妻久久影视 | 亚洲超碰在线 | 张雨绮被揉到高潮下不了床 | 中国人做受免费视频 | 久久乱码卡一卡2卡三卡四 亚洲影视在线观看 | 一级一级国产片 | 亚洲国产AV高清无码 | 他揉捏她两乳不停呻吟人妻 | 老女BBWBBWBBWBBW高潮| 爱情岛论坛自拍亚洲品质极速福利 | 国产精品美女一区二区视频 | 成人在线色视频 |