锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品一卡2卡3卡三卡四卡,亚洲AV无码乱码麻豆精品国产 ,亚洲AV第一页国产精品http://www.tkk7.com/tinysun/category/37797.htmlzh-cnFri, 20 Mar 2009 13:38:49 GMTFri, 20 Mar 2009 13:38:49 GMT60Win32API涔嬭繘紼嬬浉鍏?/title><link>http://www.tkk7.com/tinysun/archive/2009/03/20/261103.html</link><dc:creator>浣曞厠鍕?/dc:creator><author>浣曞厠鍕?/author><pubDate>Fri, 20 Mar 2009 10:01:00 GMT</pubDate><guid>http://www.tkk7.com/tinysun/archive/2009/03/20/261103.html</guid><wfw:comment>http://www.tkk7.com/tinysun/comments/261103.html</wfw:comment><comments>http://www.tkk7.com/tinysun/archive/2009/03/20/261103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/tinysun/comments/commentRss/261103.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/tinysun/services/trackbacks/261103.html</trackback:ping><description><![CDATA[<p align="right"> </p> <p><font size="3"><font color="#000000"><strong>浠庡埆浜築LOG涓婄湅鍒扮殑涓滆タ~~寰堟湁鐢▇~璁頒笅鏉錛侊紒</strong></font></font></p> <p><font size="3"><font color="#000000"><strong>CancelWaitableTimer 榪欎釜鍑芥暟鐢ㄤ簬鍙栨秷涓涓彲浠ョ瓑寰呬笅鍘葷殑璁℃椂鍣ㄦ搷浣?<br /> CallNamedPipe 榪欎釜鍑芥暟鐢變竴涓笇鏈涢氳繃綆¢亾閫氫俊鐨勪竴涓鎴瘋繘紼嬭皟鐢?<br /> ConnectNamedPipe 鎸囩ず涓鍙版湇鍔″櫒絳夊緟涓嬪幓錛岀洿鑷沖鎴鋒満鍚屼竴涓懡鍚嶇閬撹繛鎺?<br /> CreateEvent 鍒涘緩涓涓簨浠跺璞?<br /> CreateMailslot 鍒涘緩涓涓偖璺傝繑鍥炵殑鍙ユ焺鐢遍偖璺湇鍔″櫒浣跨敤錛堟敹浠朵漢錛?<br /> CreateMutex 鍒涘緩涓涓簰鏂ヤ綋錛圡UTEX錛?<br /> CreateNamedPipe 鍒涘緩涓涓懡鍚嶇閬撱傝繑鍥炵殑鍙ユ焺鐢辯閬撶殑鏈嶅姟鍣ㄧ浣跨敤 <br /> CreatePipe 鍒涘緩涓涓尶鍚嶇閬?<br /> CreateProcess 鍒涘緩涓涓柊榪涚▼錛堟瘮濡傛墽琛屼竴涓▼搴忥級 <br /> CreateSemaphore 鍒涘緩涓涓柊鐨勪俊鍙鋒満 <br /> CreateWaitableTimer 鍒涘緩涓涓彲絳夊緟鐨勮鏃跺櫒瀵硅薄 <br /> DisconnectNamedPipe 鏂紑涓涓鎴蜂笌涓涓懡鍚嶇閬撶殑榪炴帴 <br /> DuplicateHandle 鍦ㄦ寚鍑轟竴涓幇鏈夌郴緇熷璞″綋鍓嶅彞鏌勭殑鎯呭喌涓嬶紝涓洪偅涓璞″垱寤轟竴涓柊鍙ユ焺 <br /> ExitProcess 涓涓涓繘紼?<br /> FindCloseChangeNotification 鍏抽棴涓涓敼鍔ㄩ氱煡瀵硅薄 <br /> FindExecutable 鏌ユ壘涓庝竴涓寚瀹氭枃浠跺叧鑱斿湪涓璧風殑紼嬪簭鐨勬枃浠跺悕 <br /> </strong>FindFirstChangeNotification 鍒涘緩涓涓枃浠墮氱煡瀵硅薄銆傝瀵硅薄鐢ㄤ簬鐩戣鏂囦歡緋葷粺鍙戠敓鐨勫彉鍖?<br /> FindNextChangeNotification 閲嶈涓涓枃浠舵敼鍙橀氱煡瀵硅薄錛屼護鍏剁戶緇洃瑙嗕笅涓嬈″彉鍖?<br /> FreeLibrary 閲婃斁鎸囧畾鐨勫姩鎬侀摼鎺ュ簱 <br /> GetCurrentProcess 鑾峰彇褰撳墠榪涚▼鐨勪竴涓吉鍙ユ焺 <br /> GetCurrentProcessId 鑾峰彇褰撳墠榪涚▼涓涓敮涓鐨勬爣璇嗙 <br /> GetCurrentThread 鑾峰彇褰撳墠綰跨▼鐨勪竴涓吉鍙ユ焺 <br /> GetCurrentThreadId 鑾峰彇褰撳墠綰跨▼涓涓敮涓鐨勭嚎紼嬫爣璇嗙 <br /> GetExitCodeProces 鑾峰彇涓涓凡涓柇榪涚▼鐨勯鍑轟唬鐮?<br /> GetExitCodeThread 鑾峰彇涓涓凡涓綰跨▼鐨勯鍑轟唬鐮?<br /> GetHandleInformation 鑾峰彇涓庝竴涓郴緇熷璞″彞鏌勬湁鍏崇殑淇℃伅 <br /> GetMailslotInfo 鑾峰彇涓庝竴涓偖璺湁鍏崇殑淇℃伅 <br /> GetModuleFileName 鑾峰彇涓涓凡瑁呰澆妯℃澘鐨勫畬鏁磋礬寰勫悕縐?<br /> GetModuleHandle 鑾峰彇涓涓簲鐢ㄧ▼搴忔垨鍔ㄦ侀摼鎺ュ簱鐨勬ā鍧楀彞鏌?<br /> GetPriorityClass 鑾峰彇鐗瑰畾榪涚▼鐨勪紭鍏堢駭鍒?<br /> GetProcessShutdownParameters 璋冩煡緋葷粺鍏抽棴鏃朵竴涓寚瀹氱殑榪涚▼鐩稿浜庡叾瀹冭繘紼嬬殑鍏抽棴鏃╄繜鎯呭喌 <br /> GetProcessTimes 鑾峰彇涓庝竴涓繘紼嬬殑緇忚繃鏃墮棿鏈夊叧鐨勪俊鎭?<br /> GetProcessWorkingSetSize 浜嗚В涓涓簲鐢ㄧ▼搴忓湪榪愯榪囩▼涓疄闄呭悜瀹冧氦浠樹簡澶氬ぇ瀹歸噺鐨勫唴瀛?<br /> GetSartupInfo 鑾峰彇涓涓繘紼嬬殑鍚姩淇℃伅 <br /> GetThreadPriority 鑾峰彇鐗瑰畾綰跨▼鐨勪紭鍏堢駭鍒?<br /> GetTheardTimes 鑾峰彇涓庝竴涓嚎紼嬬殑緇忚繃鏃墮棿鏈夊叧鐨勪俊鎭?<br /> GetWindowThreadProcessId 鑾峰彇涓庢寚瀹氱獥鍙e叧鑱斿湪涓璧風殑涓涓繘紼嬪拰綰跨▼鏍囪瘑絎?<br /> LoadLibrary 杞藉叆鎸囧畾鐨勫姩鎬侀摼鎺ュ簱錛屽茍灝嗗畠鏄犲皠鍒板綋鍓嶈繘紼嬩嬌鐢ㄧ殑鍦板潃絀洪棿 <br /> LoadLibraryEx 瑁呰澆鎸囧畾鐨勫姩鎬侀摼鎺ュ簱錛屽茍涓哄綋鍓嶈繘紼嬫妸瀹冩槧灝勫埌鍦板潃絀洪棿 <br /> LoadModule 杞藉叆涓涓猈indows搴旂敤紼嬪簭錛屽茍鍦ㄦ寚瀹氱殑鐜涓繍琛?<br /> MsgWaitForMultipleObjects 絳変警鍗曚釜瀵硅薄鎴栦竴緋誨垪瀵硅薄鍙戝嚭淇″彿銆傚榪斿洖鏉′歡宸茬粡婊¤凍錛屽垯绔嬪嵆榪斿洖 <br /> SetPriorityClass 璁劇疆涓涓繘紼嬬殑浼樺厛綰у埆 <br /> SetProcessShutdownParameters 鍦ㄧ郴緇熷叧闂湡闂達紝涓烘寚瀹氳繘紼嬭緗粬鐩稿浜庡叾瀹冪▼搴忕殑鍏抽棴欏哄簭 <br /> SetProcessWorkingSetSize 璁劇疆鎿嶄綔緋葷粺瀹為檯鍒掑垎緇欒繘紼嬩嬌鐢ㄧ殑鍐呭瓨瀹歸噺 <br /> SetThreadPriority 璁懼畾綰跨▼鐨勪紭鍏堢駭鍒?<br /> ShellExecute 鏌ユ壘涓庢寚瀹氭枃浠跺叧鑱斿湪涓璧風殑紼嬪簭鐨勬枃浠跺悕 <br /> TerminateProcess 緇撴潫涓涓繘紼?<br /> WinExec 榪愯鎸囧畾鐨勭▼搴?<br /> </p> </font></font> <img src ="http://www.tkk7.com/tinysun/aggbug/261103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/tinysun/" target="_blank">浣曞厠鍕?/a> 2009-03-20 18:01 <a href="http://www.tkk7.com/tinysun/archive/2009/03/20/261103.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>娣卞叆嫻呭嚭Win32澶氱嚎紼嬬▼搴忚璁′箣綰跨▼閫氫俊(杞?http://www.tkk7.com/tinysun/archive/2008/11/30/243521.html浣曞厠鍕?/dc:creator>浣曞厠鍕?/author>Sun, 30 Nov 2008 05:25:00 GMThttp://www.tkk7.com/tinysun/archive/2008/11/30/243521.htmlhttp://www.tkk7.com/tinysun/comments/243521.htmlhttp://www.tkk7.com/tinysun/archive/2008/11/30/243521.html#Feedback0http://www.tkk7.com/tinysun/comments/commentRss/243521.htmlhttp://www.tkk7.com/tinysun/services/trackbacks/243521.html綆浠?br />
銆銆綰跨▼涔嬮棿閫氫俊鐨勪袱涓熀鏈棶棰樻槸浜掓枼鍜屽悓姝ャ?br />
銆銆綰跨▼鍚屾鏄寚綰跨▼涔嬮棿鎵鍏鋒湁鐨勪竴縐嶅埗綰﹀叧緋伙紝涓涓嚎紼嬬殑鎵ц渚濊禆鍙︿竴涓嚎紼嬬殑娑堟伅錛屽綋瀹冩病鏈夊緱鍒板彟涓涓嚎紼嬬殑娑堟伅鏃跺簲絳夊緟錛岀洿鍒版秷鎭埌杈炬椂鎵嶈鍞ら啋銆?br />
銆銆綰跨▼浜掓枼鏄寚瀵逛簬鍏變韓鐨勬搷浣滅郴緇熻祫婧愶紙鎸囩殑鏄箍涔夌殑"璧勬簮"錛岃屼笉鏄疻indows鐨?res鏂囦歡錛岃濡傚叏灞鍙橀噺灝辨槸涓縐嶅叡浜祫婧愶級錛屽湪鍚勭嚎紼嬭闂椂鐨勬帓瀹冩с傚綋鏈夎嫢騫蹭釜綰跨▼閮借浣跨敤鏌愪竴鍏變韓璧勬簮鏃訛紝浠諱綍鏃跺埢鏈澶氬彧鍏佽涓涓嚎紼嬪幓浣跨敤錛屽叾瀹冭浣跨敤璇ヨ祫婧愮殑綰跨▼蹇呴』絳夊緟錛岀洿鍒板崰鐢ㄨ祫婧愯呴噴鏀捐璧勬簮銆?br />
銆銆綰跨▼浜掓枼鏄竴縐嶇壒孌婄殑綰跨▼鍚屾銆?br />
銆銆瀹為檯涓婏紝浜掓枼鍜屽悓姝ュ搴旂潃綰跨▼闂撮氫俊鍙戠敓鐨勪袱縐嶆儏鍐碉細

銆銆錛?錛夊綋鏈夊涓嚎紼嬭闂叡浜祫婧愯屼笉浣胯祫婧愯鐮村潖鏃訛紱

銆銆錛?錛夊綋涓涓嚎紼嬮渶瑕佸皢鏌愪釜浠誨姟宸茬粡瀹屾垚鐨勬儏鍐甸氱煡鍙﹀涓涓垨澶氫釜綰跨▼鏃躲?br />
銆銆鍦╓IN32涓紝鍚屾鏈哄埗涓昏鏈変互涓嬪嚑縐嶏細

銆銆錛?錛変簨浠?Event);

銆銆錛?錛変俊鍙烽噺(semaphore);

銆銆錛?錛変簰鏂ラ噺(mutex);

銆銆錛?錛変復鐣屽尯(Critical section)銆?br />
銆銆鍏ㄥ眬鍙橀噺

銆銆鍥犱負榪涚▼涓殑鎵鏈夌嚎紼嬪潎鍙互璁塊棶鎵鏈夌殑鍏ㄥ眬鍙橀噺錛屽洜鑰屽叏灞鍙橀噺鎴愪負Win32澶氱嚎紼嬮氫俊鐨勬渶綆鍗曟柟寮忋備緥濡傦細

int var; //鍏ㄥ眬鍙橀噺
UINT ThreadFunction(LPVOIDpParam)
{
銆var = 0;
銆while (var < MaxValue)
銆{
銆銆//綰跨▼澶勭悊
銆銆::InterlockedIncrement(long*) &var);
銆}
銆return 0;
}
璇風湅涓嬪垪紼嬪簭錛?br /> int globalFlag = false;
DWORD WINAPI ThreadFunc(LPVOID n)
{
銆Sleep(2000);
銆globalFlag = true;

銆return 0;
}

int main()
{
銆HANDLE hThrd;
銆DWORD threadId;

銆hThrd = CreateThread(NULL, 0, ThreadFunc, NULL, 0, &threadId);
銆if (hThrd)
銆{
銆銆printf("Thread launched\n");
銆銆CloseHandle(hThrd);
銆}

銆while (!globalFlag)
銆;
銆printf("exit\n");
}

銆銆涓婅堪紼嬪簭涓嬌鐢ㄥ叏灞鍙橀噺鍜寃hile寰幆鏌ヨ榪涜綰跨▼闂村悓姝ワ紝瀹為檯涓婏紝榪欐槸涓縐嶅簲璇ラ伩鍏嶇殑鏂規硶錛屽洜涓猴細

銆銆錛?錛夊綋涓葷嚎紼嬪繀欏諱嬌鑷繁涓嶵hreadFunc鍑芥暟鐨勫畬鎴愯繍琛屽疄鐜板悓姝ユ椂錛屽畠騫舵病鏈変嬌鑷繁榪涘叆鐫$湢鐘舵併傜敱浜庝富綰跨▼娌℃湁榪涘叆鐫$湢鐘舵侊紝鍥犳鎿嶄綔緋葷粺緇х畫涓哄畠璋冨害C P U鏃墮棿錛岃繖灝辮鍗犵敤鍏朵粬綰跨▼鐨勫疂璐墊椂闂村懆鏈燂紱

銆銆錛?錛夊綋涓葷嚎紼嬬殑浼樺厛綰ч珮浜庢墽琛孴hreadFunc鍑芥暟鐨勭嚎紼嬫椂錛屽氨浼氬彂鐢焔lobalFlag姘歌繙涓嶈兘琚祴鍊間負true鐨勬儏鍐點傚洜涓哄湪榪欑鎯呭喌涓嬶紝緋葷粺鍐充笉浼氬皢浠諱綍鏃墮棿鐗囧垎閰嶇粰ThreadFunc綰跨▼銆?br />
銆銆浜嬩歡

銆銆浜嬩歡(Event)鏄疻IN32鎻愪緵鐨勬渶鐏墊椿鐨勭嚎紼嬮棿鍚屾鏂瑰紡錛屼簨浠跺彲浠ュ浜庢縺鍙戠姸鎬?signaled or true)鎴栨湭嬋鍙戠姸鎬?unsignal or false)銆傛牴鎹姸鎬佸彉榪佹柟寮忕殑涓嶅悓錛屼簨浠跺彲鍒嗕負涓ょ被錛?br />
銆銆錛?錛夋墜鍔ㄨ緗細榪欑瀵硅薄鍙彲鑳界敤紼嬪簭鎵嬪姩璁劇疆錛屽湪闇瑕佽浜嬩歡鎴栬呬簨浠跺彂鐢熸椂錛岄噰鐢⊿etEvent鍙奟esetEvent鏉ヨ繘琛岃緗?br />
銆銆錛?錛夎嚜鍔ㄦ仮澶嶏細涓鏃︿簨浠跺彂鐢熷茍琚鐞嗗悗錛岃嚜鍔ㄦ仮澶嶅埌娌℃湁浜嬩歡鐘舵侊紝涓嶉渶瑕佸啀嬈¤緗?br />
銆銆鍒涘緩浜嬩歡鐨勫嚱鏁板師鍨嬩負錛?br />
HANDLE CreateEvent(
銆LPSECURITY_ATTRIBUTES lpEventAttributes,
銆// SECURITY_ATTRIBUTES緇撴瀯鎸囬拡錛屽彲涓篘ULL
銆BOOL bManualReset,
銆// 鎵嬪姩/鑷姩
銆// TRUE錛氬湪WaitForSingleObject鍚庡繀欏繪墜鍔ㄨ皟鐢≧esetEvent娓呴櫎淇″彿
銆// FALSE錛氬湪WaitForSingleObject鍚庯紝緋葷粺鑷姩娓呴櫎浜嬩歡淇″彿
銆BOOL bInitialState, //鍒濆鐘舵?br /> 銆LPCTSTR lpName //浜嬩歡鐨勫悕縐?br /> );

銆銆浣跨敤"浜嬩歡"鏈哄埗搴旀敞鎰忎互涓嬩簨欏癸細

銆銆錛?錛夊鏋滆法榪涚▼璁塊棶浜嬩歡錛屽繀欏誨浜嬩歡鍛藉悕錛屽湪瀵逛簨浠跺懡鍚嶇殑鏃跺欙紝瑕佹敞鎰忎笉瑕佷笌緋葷粺鍛藉悕絀洪棿涓殑鍏跺畠鍏ㄥ眬鍛藉悕瀵硅薄鍐茬獊錛?br />
銆銆錛?錛変簨浠舵槸鍚﹁鑷姩鎭㈠錛?br />
銆銆錛?錛変簨浠剁殑鍒濆鐘舵佽緗?br />
銆銆鐢變簬event瀵硅薄灞炰簬鍐呮牳瀵硅薄錛屾晠榪涚▼B鍙互璋冪敤OpenEvent鍑芥暟閫氳繃瀵硅薄鐨勫悕瀛楄幏寰楄繘紼婣涓璭vent瀵硅薄鐨勫彞鏌勶紝鐒跺悗灝嗚繖涓彞鏌勭敤浜嶳esetEvent銆丼etEvent鍜學aitForMultipleObjects絳夊嚱鏁頒腑銆傛娉曞彲浠ュ疄鐜頒竴涓繘紼嬬殑綰跨▼鎺у埗鍙︿竴榪涚▼涓嚎紼嬬殑榪愯錛屼緥濡傦細

HANDLE hEvent=OpenEvent(EVENT_ALL_ACCESS,true,"MyEvent");
ResetEvent(hEvent);

涓寸晫鍖?br />
銆銆瀹氫箟涓寸晫鍖哄彉閲?br />
CRITICAL_SECTION gCriticalSection;

銆銆閫氬父鎯呭喌涓嬶紝CRITICAL_SECTION緇撴瀯浣撳簲璇ヨ瀹氫箟涓哄叏灞鍙橀噺錛屼互渚夸簬榪涚▼涓殑鎵鏈夌嚎紼嬫柟渚垮湴鎸夌収鍙橀噺鍚嶆潵寮曠敤璇ョ粨鏋勪綋銆?br />
銆銆鍒濆鍖栦復鐣屽尯

VOID WINAPI InitializeCriticalSection(
銆LPCRITICAL_SECTION lpCriticalSection
銆//鎸囧悜紼嬪簭鍛樺畾涔夌殑CRITICAL_SECTION鍙橀噺
);

銆銆璇ュ嚱鏁扮敤浜庡pcs鎵鎸囩殑CRITICAL_SECTION緇撴瀯浣撹繘琛屽垵濮嬪寲銆傝鍑芥暟鍙槸璁劇疆浜嗕竴浜涙垚鍛樺彉閲忥紝瀹冪殑榪愯涓鑸笉浼氬け璐ワ紝鍥犳瀹冮噰鐢ㄤ簡VOID綾誨瀷鐨勮繑鍥炲箋傝鍑芥暟蹇呴』鍦ㄤ換浣曠嚎紼嬭皟鐢‥nterCriticalSection鍑芥暟涔嬪墠琚皟鐢紝濡傛灉涓涓嚎紼嬭瘯鍥捐繘鍏ヤ竴涓湭鍒濆鍖栫殑CRTICAL_SECTION錛岄偅涔堢粨鏋滃皢鏄緢闅鵑璁$殑銆?br />
銆銆鍒犻櫎涓寸晫鍖?br />
VOID WINAPI DeleteCriticalSection(
銆LPCRITICAL_SECTION lpCriticalSection
銆//鎸囧悜涓涓笉鍐嶉渶瑕佺殑CRITICAL_SECTION鍙橀噺
);

銆銆榪涘叆涓寸晫鍖?br />
VOID WINAPI EnterCriticalSection(
銆LPCRITICAL_SECTION lpCriticalSection
銆//鎸囧悜涓涓綘鍗沖皢閿佸畾鐨凜RITICAL_SECTION鍙橀噺
);

銆銆紱誨紑涓寸晫鍖?br />
VOID WINAPI LeaveCriticalSection(
銆LPCRITICAL_SECTION lpCriticalSection
銆//鎸囧悜涓涓綘鍗沖皢紱誨紑鐨凜RITICAL_SECTION鍙橀噺
);

銆銆浣跨敤涓寸晫鍖虹紪紼嬬殑涓鑸柟娉曟槸錛?br />
void UpdateData()
{
銆EnterCriticalSection(&gCriticalSection);
銆...//do something
銆LeaveCriticalSection(&gCriticalSection);
}

銆銆鍏充簬涓寸晫鍖虹殑浣跨敤錛屾湁涓嬪垪娉ㄦ剰鐐癸細

銆銆錛?錛夋瘡涓叡浜祫婧愪嬌鐢ㄤ竴涓狢RITICAL_SECTION鍙橀噺錛?br />
銆銆錛?錛変笉瑕侀暱鏃墮棿榪愯鍏抽敭浠g爜孌碉紝褰撲竴涓叧閿唬鐮佹闀挎椂闂磋繍琛屾椂錛屽叾浠栫嚎紼嬪氨浼氳繘鍏ョ瓑寰呯姸鎬侊紝榪欎細闄嶄綆搴旂敤紼嬪簭鐨勮繍琛屾ц兘錛?br />
銆銆錛?錛夊鏋滈渶瑕佸悓鏃惰闂涓祫婧愶紝鍒欏彲鑳借繛緇皟鐢‥nterCriticalSection錛?br />
銆銆錛?錛塁ritical Section涓嶆槸OS鏍稿績瀵硅薄錛屽鏋滆繘鍏ヤ復鐣屽尯鐨勭嚎紼?鎸?浜嗭紝灝嗘棤娉曢噴鏀句復鐣岃祫婧愩傝繖涓己鐐瑰湪Mutex涓緱鍒頒簡寮ヨˉ銆?br />
銆銆浜掓枼

銆銆浜掓枼閲忕殑浣滅敤鏄繚璇佹瘡嬈″彧鑳芥湁涓涓嚎紼嬭幏寰椾簰鏂ラ噺鑰屽緱浠ョ戶緇墽琛岋紝浣跨敤CreateMutex鍑芥暟鍒涘緩錛?

HANDLE CreateMutex(
銆LPSECURITY_ATTRIBUTES lpMutexAttributes,
銆// 瀹夊叏灞炴х粨鏋勬寚閽堬紝鍙負NULL
銆BOOL bInitialOwner,
銆//鏄惁鍗犳湁璇ヤ簰鏂ラ噺錛孴RUE錛氬崰鏈夛紝FALSE錛氫笉鍗犳湁
銆LPCTSTR lpName
銆//淇″彿閲忕殑鍚嶇О
);

銆銆Mutex鏄牳蹇冨璞★紝鍙互璺ㄨ繘紼嬭闂紝涓嬮潰鐨勪唬鐮佺粰鍑轟簡浠庡彟涓榪涚▼璁塊棶鍛藉悕Mutex鐨勪緥瀛愶細

HANDLE hMutex;
hMutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, L"mutexName");
if (hMutex){
銆…
锝?br /> else{
銆…
}

銆銆鐩稿叧API錛?br />
BOOL WINAPI ReleaseMutex(
銆HANDLE hMutex
);

銆銆浣跨敤浜掓枼緙栫▼鐨勪竴鑸柟娉曟槸錛?br />
void UpdateResource()
{
銆WaitForSingleObject(hMutex,…);
銆...//do something
銆ReleaseMutex(hMutex);
}

銆銆浜掓枼(mutex)鍐呮牳瀵硅薄鑳藉紜繚綰跨▼鎷ユ湁瀵瑰崟涓祫婧愮殑浜掓枼璁塊棶鏉冦備簰鏂ュ璞$殑琛屼負鐗規т笌涓寸晫鍖虹浉鍚岋紝浣嗘槸浜掓枼瀵硅薄灞炰簬鍐呮牳瀵硅薄錛岃屼復鐣屽尯鍒欏睘浜庣敤鎴鋒柟寮忓璞★紝鍥犳榪欏鑷磎utex涓嶤ritical Section鐨勫涓嬩笉鍚岋細

銆銆錛?錛?浜掓枼瀵硅薄鐨勮繍琛岄熷害姣斿叧閿唬鐮佹瑕佹參錛?br />
銆銆錛?錛?涓嶅悓榪涚▼涓殑澶氫釜綰跨▼鑳藉璁塊棶鍗曚釜浜掓枼瀵硅薄錛?br />
銆銆錛?錛?綰跨▼鍦ㄧ瓑寰呰闂祫婧愭椂鍙互璁懼畾涓涓秴鏃跺箋?br />
銆銆涓嬪浘鏇磋緇嗗湴鍒楀嚭浜嗕簰鏂ヤ笌涓寸晫鍖虹殑涓嶅悓錛?br />

淇″彿閲?br />
銆銆淇″彿閲忔槸緇存姢0鍒版寚瀹氭渶澶у間箣闂寸殑鍚屾瀵硅薄銆備俊鍙烽噺鐘舵佸湪鍏惰鏁板ぇ浜?鏃舵槸鏈変俊鍙風殑錛岃屽叾璁℃暟鏄?鏃舵槸鏃犱俊鍙風殑銆備俊鍙烽噺瀵硅薄鍦ㄦ帶鍒朵笂鍙互鏀寔鏈夐檺鏁伴噺鍏變韓璧勬簮鐨勮闂?br />
銆銆淇″彿閲忕殑鐗圭偣鍜岀敤閫斿彲鐢ㄤ笅鍒楀嚑鍙ヨ瘽瀹氫箟錛?br />
銆銆錛?錛夊鏋滃綋鍓嶈祫婧愮殑鏁伴噺澶т簬0錛屽垯淇″彿閲忔湁鏁堬紱

銆銆錛?錛夊鏋滃綋鍓嶈祫婧愭暟閲忔槸0錛屽垯淇″彿閲忔棤鏁堬紱

銆銆錛?錛夌郴緇熷喅涓嶅厑璁稿綋鍓嶈祫婧愮殑鏁伴噺涓鴻礋鍊鹼紱

銆銆錛?錛夊綋鍓嶈祫婧愭暟閲忓喅涓嶈兘澶т簬鏈澶ц祫婧愭暟閲忋?br />
銆銆鍒涘緩淇″彿閲?br />
HANDLE CreateSemaphore (
銆PSECURITY_ATTRIBUTE psa,
銆LONG lInitialCount, //寮濮嬫椂鍙緵浣跨敤鐨勮祫婧愭暟
銆LONG lMaximumCount, //鏈澶ц祫婧愭暟
PCTSTR pszName);

銆銆閲婃斁淇″彿閲?br />
銆銆閫氳繃璋冪敤ReleaseSemaphore鍑芥暟錛岀嚎紼嬪氨鑳藉瀵逛俊鏍囩殑褰撳墠璧勬簮鏁伴噺榪涜閫掑錛岃鍑芥暟鍘熷瀷涓猴細

BOOL WINAPI ReleaseSemaphore(
銆HANDLE hSemaphore,
銆LONG lReleaseCount, //淇″彿閲忕殑褰撳墠璧勬簮鏁板鍔爈ReleaseCount
銆LPLONG lpPreviousCount
);

銆銆鎵撳紑淇″彿閲?br />
銆銆鍜屽叾浠栨牳蹇冨璞′竴鏍鳳紝淇″彿閲忎篃鍙互閫氳繃鍚嶅瓧璺ㄨ繘紼嬭闂紝鎵撳紑淇″彿閲忕殑API涓猴細

HANDLE OpenSemaphore (
銆DWORD fdwAccess,
銆BOOL bInherithandle,
銆PCTSTR pszName
);

銆銆浜掗攣璁塊棶

銆銆褰撳繀欏諱互鍘熷瓙鎿嶄綔鏂瑰紡鏉ヤ慨鏀瑰崟涓兼椂錛屼簰閿佽闂嚱鏁版槸鐩稿綋鏈夌敤鐨勩傛墍璋撳師瀛愯闂紝鏄寚綰跨▼鍦ㄨ闂祫婧愭椂鑳藉紜繚鎵鏈夊叾浠栫嚎紼嬮兘涓嶅湪鍚屼竴鏃墮棿鍐呰闂浉鍚岀殑璧勬簮銆?br />
銆銆璇風湅涓嬪垪浠g爜錛?br />
int globalVar = 0;

DWORD WINAPI ThreadFunc1(LPVOID n)
{
銆globalVar++;
銆return 0;
}
DWORD WINAPI ThreadFunc2(LPVOID n)
{
銆globalVar++;
銆return 0;
}

銆銆榪愯ThreadFunc1鍜孴hreadFunc2綰跨▼錛岀粨鏋滄槸涓嶅彲棰勬枡鐨勶紝鍥犱負globalVar++騫朵笉瀵瑰簲鐫涓鏉℃満鍣ㄦ寚浠わ紝鎴戜滑鐪嬬湅globalVar++鐨勫弽姹囩紪浠g爜錛?br />
00401038 mov eax,[globalVar (0042d3f0)]
0040103D add eax,1
00401040 mov [globalVar (0042d3f0)],eax

銆銆鍦?mov eax,[globalVar (0042d3f0)]" 鎸囦護涓?add eax,1" 鎸囦護浠ュ強"add eax,1" 鎸囦護涓?mov [globalVar (0042d3f0)],eax"鎸囦護涔嬮棿閮藉彲鑳藉彂鐢熺嚎紼嬪垏鎹紝浣垮緱紼嬪簭鐨勬墽琛屽悗globalVar鐨勭粨鏋滀笉鑳界‘瀹氥傛垜浠彲浠ヤ嬌鐢↖nterlockedExchangeAdd鍑芥暟瑙e喅榪欎釜闂錛?br />
int globalVar = 0;

DWORD WINAPI ThreadFunc1(LPVOID n)
{
銆InterlockedExchangeAdd(&globalVar,1);
銆return 0;
}
DWORD WINAPI ThreadFunc2(LPVOID n)
{
銆InterlockedExchangeAdd(&globalVar,1);
銆return 0;
}

銆銆InterlockedExchangeAdd淇濊瘉瀵瑰彉閲廹lobalVar鐨勮闂叿鏈?鍘熷瓙鎬?銆備簰閿佽闂殑鎺у埗閫熷害闈炲父蹇紝璋冪敤涓涓簰閿佸嚱鏁扮殑CPU鍛ㄦ湡閫氬父灝忎簬50錛屼笉闇瑕佽繘琛岀敤鎴鋒柟寮忎笌鍐呮牳鏂瑰紡鐨勫垏鎹紙璇ュ垏鎹㈤氬父闇瑕佽繍琛?000涓狢PU鍛ㄦ湡錛夈?br />
銆銆浜掗攣璁塊棶鍑芥暟鐨勭己鐐瑰湪浜庡叾鍙兘瀵瑰崟涓鍙橀噺榪涜鍘熷瓙璁塊棶錛屽鏋滆璁塊棶鐨勮祫婧愭瘮杈冨鏉傦紝浠嶈浣跨敤涓寸晫鍖烘垨浜掓枼銆?br />
銆銆鍙瓑寰呭畾鏃跺櫒

銆銆鍙瓑寰呭畾鏃跺櫒鏄湪鏌愪釜鏃墮棿鎴栨寜瑙勫畾鐨勯棿闅旀椂闂村彂鍑鴻嚜宸辯殑淇″彿閫氱煡鐨勫唴鏍稿璞°傚畠浠氬父鐢ㄦ潵鍦ㄦ煇涓椂闂存墽琛屾煇涓搷浣溿?br />
銆銆鍒涘緩鍙瓑寰呭畾鏃跺櫒

HANDLE CreateWaitableTimer(
銆PSECURITY_ATTRISUTES psa,
銆BOOL fManualReset,//浜哄伐閲嶇疆鎴栬嚜鍔ㄩ噸緗畾鏃跺櫒
PCTSTR pszName);

銆銆璁劇疆鍙瓑寰呭畾鏃跺櫒

銆銆鍙瓑寰呭畾鏃跺櫒瀵硅薄鍦ㄩ潪嬋媧葷姸鎬佷笅琚垱寤猴紝紼嬪簭鍛樺簲璋冪敤 SetWaitableTimer鍑芥暟鏉ョ晫瀹氬畾鏃跺櫒鍦ㄤ綍鏃惰嬋媧伙細

BOOL SetWaitableTimer(
銆HANDLE hTimer, //瑕佽緗殑瀹氭椂鍣?br /> 銆const LARGE_INTEGER *pDueTime, //鎸囨槑瀹氭椂鍣ㄧ涓嬈℃縺媧葷殑鏃墮棿
銆LONG lPeriod, //鎸囨槑姝ゅ悗瀹氭椂鍣ㄥ簲璇ラ棿闅斿闀挎椂闂存縺媧諱竴嬈?br /> 銆PTIMERAPCROUTINE pfnCompletionRoutine,
銆PVOID PvArgToCompletionRoutine,
BOOL fResume);

銆銆鍙栨秷鍙瓑寰呭畾鏃跺櫒

BOOl Cancel WaitableTimer(
銆HANDLE hTimer //瑕佸彇娑堢殑瀹氭椂鍣?br /> );

銆銆鎵撳紑鍙瓑寰呭畾鏃跺櫒

銆銆浣滀負涓縐嶅唴鏍稿璞★紝WaitableTimer涔熷彲浠ヨ鍏朵粬榪涚▼浠ュ悕瀛楁墦寮錛?br />
HANDLE OpenWaitableTimer (
銆DWORD fdwAccess,
銆BOOL bInherithandle,
銆PCTSTR pszName
);

銆銆瀹炰緥

銆銆涓嬮潰緇欏嚭鐨勪竴涓▼搴忓彲鑳藉彂鐢熸閿佺幇璞★細

#include <windows.h>
#include <stdio.h>
CRITICAL_SECTION cs1, cs2;
long WINAPI ThreadFn(long);
main()
{
銆long iThreadID;
銆InitializeCriticalSection(&cs1);
銆InitializeCriticalSection(&cs2);
銆CloseHandle(CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadFn, NULL, 0,&iThreadID));
銆while (TRUE)
銆{
銆銆EnterCriticalSection(&cs1);
銆銆printf("\n綰跨▼1鍗犵敤涓寸晫鍖?");
銆銆EnterCriticalSection(&cs2);
銆銆printf("\n綰跨▼1鍗犵敤涓寸晫鍖?");

銆銆printf("\n綰跨▼1鍗犵敤涓や釜涓寸晫鍖?);

銆銆LeaveCriticalSection(&cs2);
銆銆LeaveCriticalSection(&cs1);

銆銆printf("\n綰跨▼1閲婃斁涓や釜涓寸晫鍖?);
銆銆Sleep(20);
銆};
銆return (0);
}

long WINAPI ThreadFn(long lParam)
{
銆while (TRUE)
銆{
銆銆EnterCriticalSection(&cs2);
銆銆printf("\n綰跨▼2鍗犵敤涓寸晫鍖?");
銆銆EnterCriticalSection(&cs1);
銆銆printf("\n綰跨▼2鍗犵敤涓寸晫鍖?");

銆銆printf("\n綰跨▼2鍗犵敤涓や釜涓寸晫鍖?);

銆銆LeaveCriticalSection(&cs1);
銆銆LeaveCriticalSection(&cs2);

銆銆printf("\n綰跨▼2閲婃斁涓や釜涓寸晫鍖?);
銆銆Sleep(20);
銆};
}

銆銆榪愯榪欎釜紼嬪簭錛屽湪涓斾竴鏃﹀彂鐢熻繖鏍風殑杈撳嚭錛?br />
銆銆綰跨▼1鍗犵敤涓寸晫鍖?

銆銆綰跨▼2鍗犵敤涓寸晫鍖?

銆銆鎴?br />
銆銆綰跨▼2鍗犵敤涓寸晫鍖?

銆銆綰跨▼1鍗犵敤涓寸晫鍖?

銆銆鎴?br />
銆銆綰跨▼1鍗犵敤涓寸晫鍖?

銆銆綰跨▼2鍗犵敤涓寸晫鍖?

銆銆鎴?br />
銆銆綰跨▼2鍗犵敤涓寸晫鍖?

銆銆綰跨▼1鍗犵敤涓寸晫鍖?

銆銆紼嬪簭灝?姝?鎺変簡錛屽啀涔熻繍琛屼笉涓嬪幓銆傚洜涓鴻繖鏍風殑杈撳嚭錛屾剰鍛崇潃涓や釜綰跨▼鐩鎬簰絳夊緟瀵規柟閲婃斁涓寸晫鍖猴紝涔熷嵆鍑虹幇浜嗘閿併?br />
銆銆濡傛灉鎴戜滑灝嗙嚎紼?鐨勬帶鍒跺嚱鏁版敼涓猴細

long WINAPI ThreadFn(long lParam)
{
銆while (TRUE)
銆{
銆銆EnterCriticalSection(&cs1);
銆銆printf("\n綰跨▼2鍗犵敤涓寸晫鍖?");
銆銆EnterCriticalSection(&cs2);
銆銆printf("\n綰跨▼2鍗犵敤涓寸晫鍖?");

銆銆printf("\n綰跨▼2鍗犵敤涓や釜涓寸晫鍖?);

銆銆LeaveCriticalSection(&cs1);
銆銆LeaveCriticalSection(&cs2);

銆銆printf("\n綰跨▼2閲婃斁涓や釜涓寸晫鍖?);
銆銆Sleep(20);
銆};
}

銆銆鍐嶆榪愯紼嬪簭錛屾閿佽娑堥櫎錛岀▼搴忎笉鍐嶆尅鎺夈傝繖鏄洜涓烘垜浠敼鍙樹簡綰跨▼2涓幏寰椾復鐣屽尯1銆?鐨勯『搴忥紝娑堥櫎浜嗙嚎紼?銆?鐩鎬簰絳夊緟璧勬簮鐨勫彲鑳芥с?br />
銆銆鐢辨鎴戜滑寰楀嚭緇撹錛屽湪浣跨敤綰跨▼闂寸殑鍚屾鏈哄埗鏃訛紝瑕佺壒鍒暀蹇冩閿佺殑鍙戠敓銆?br />

]]>
主站蜘蛛池模板: 三年片在线观看免费大全电影| 亚洲日本va在线视频观看| 日本免费在线观看| 人成午夜免费大片在线观看| 亚洲大成色www永久网址| 911精品国产亚洲日本美国韩国| 亚洲人成电影网站国产精品| 午夜视频免费观看| 每天更新的免费av片在线观看 | 三年片在线观看免费观看大全动漫| 美女被免费网站视频在线| 99热亚洲色精品国产88| 中文字幕亚洲精品资源网| 亚洲精品成人无限看| 亚洲伦乱亚洲h视频| 又黄又大又爽免费视频| 在线视频免费观看www动漫| 亚洲国产精品免费在线观看| 国产好大好硬好爽免费不卡| 丝袜捆绑调教视频免费区| 噜噜噜亚洲色成人网站| 亚洲av无一区二区三区| 久久久久亚洲精品无码网址色欲| 亚洲喷奶水中文字幕电影| 亚洲精品视频久久| 亚洲理论片在线中文字幕| 亚洲视频2020| 18gay台湾男同亚洲男同| 一区二区三区亚洲| 内射少妇36P亚洲区| 亚洲欧洲高清有无| 亚洲国产成人超福利久久精品| 亚洲美女人黄网成人女| 91情国产l精品国产亚洲区 | 91精品免费观看| 无码精品国产一区二区三区免费| igao激情在线视频免费| 二区久久国产乱子伦免费精品| 全黄大全大色全免费大片| 无码日韩精品一区二区免费暖暖| 99视频精品全部免费观看|