ÔÆÌ⺣ - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

µ±Ç°Î»ÖãºÊ×Ò³ > OS½ø³Ìͬ²½ÊµÑ鱨¸æ

OS½ø³Ìͬ²½ÊµÑ鱨¸æ

  • 62 ´ÎÔĶÁ
  • 3 ´ÎÏÂÔØ
  • 2025/12/11 10:46:35

} WaitForSingleObject(hMutex, INFINITE) ; i--; ReleaseMutex(hMutex) ; } return j; int main() { DWORD id1,id2; HANDLE hThread[2] ; hMutex = CreateMutex( NULL, // ȱʡµÄ°²È«ÊôÐÔ£¬¾ä±ú²»±»×Ó½ø³Ì¼Ì³Ð FALSE, NULL) ; // Ö»³õʼ»¯£¬²»ÓµÓÐ // ÄäÃûµÄ hThread[0] = CreateThread(0,0,fun1,0,0,&id1); hThread[1] = CreateThread(0,0,fun2,0,0,&id2); WaitForMultipleObjects(2,hThread,1,INFINITE); cout<<\ ReleaseMutex(hMutex) ; CloseHandle(hMutex) ; } return 0; ³ÌÐò4_4£º # include # include HANDLE g_hSemThreads=INVALID_HANDLE_VALUE; static DWORD WINAPI ThreadProc(LPVOID lpParam) { LONG nPauseMs=reinterpret_cast(lpParam); Sleep(nPauseMs*100); if(g_hSemThreads!=INVALID_HANDLE_VALUE) { LONG nPrevCt(0); if(ReleaseSemaphore(g_hSemThreads,// ÒªÔö¼ÓµÄÐźÅÁ¿¾ä±ú 1,// Ôö¼ÓµÄ¼ÆÊý &nPrevCt)) //Ôö¼ÓǰµÄÊýÖµ·µ»Ø { cout<< nPauseMs<< \ } } return(0); } void main() { g_hSemThreads=CreateSemaphore(NULL,// ÊÇÐźÅÁ¿µÄ°²È«ÊôÐÔ 5, //Êdzõʼ»¯µÄÐźÅÁ¿ 5, //ÐźÅÁ¿µÄ×î´óÖµ NULL); //ÐźÅÁ¿µÄÃû³Æ for(int nTotal=10;nTotal>0; nTotal--) { WaitForSingleObject(g_hSemThreads,INFINITE); LONG nPauseMs=nTotal*5; Sleep(100); HANDLE Thread=CreateThread(NULL,0,ThreadProc,reinterpret_cast(nPauseMs),0,NULL); cout<< nPauseMs<< \ CloseHandle(hThread); hThread=INVALID_HANDLE_VALUE; } CloseHandle(g_hSemThreads); g_hSemThreads=INVALID_HANDLE_VALUE; } ˼¿¼Ìâ 1£® ±È½ÏÁÙ½çÇøºÍ»¥³âÌåʵÏÖͬ²½µÄʵÓ÷½·¨£¬¼°³ÌÐòÖ´ÐеÄЧÂÊ¡£ ÁÙ½çÇøÊÇÒ»ÖÖ×îÖ±½ÓµÄÏß³Ìͬ²½·½Ê½¡£ËùνÁÙ½çÇø£¬¾ÍÊÇÒ»´ÎÖ»ÄÜÓÉÒ»¸öÏß³ÌÀ´Ö´ÐеÄÒ»¶Î´úÂë¡£Èç¹û°Ñ³õʼ»¯Êý×éµÄ´úÂë·ÅÔÚÁÙ½çÇøÄÚ£¬ÁíÒ»¸öÏß³ÌÔÚµÚÒ»¸öÏ̴߳¦ÀíÍê֮ǰÊDz»»á±»Ö´Ðеġ£»¥³â·Ç³£ÀàËÆÓÚÁÙ½çÇø£¬³ýÁËÁ½¸ö¹Ø¼üµÄÇø±ð£ºÊ×ÏÈ£¬»¥³â¿ÉÓÃÓÚ¿ç½ø³ÌµÄÏß³Ìͬ²½¡£Æä´Î£¬»¥³âÄܱ»¸³ÓèÒ»¸ö×Ö·û´®Ãû×Ö£¬²¢ÇÒͨ¹ýÒýÓôËÃû×Ö´´½¨ÏÖÓл¥³â¶ÔÏóµÄ¸½¼Ó¾ä±ú¡£ÁÙ½çÇøÓëʼþ¶ÔÏó(±ÈÈ绥³â¶ÔÏó)µÄ×î´óµÄÇø±ðÊÇÔÚÐÔÄÜÉÏ¡£ÁÙ½çÇøÔÚûÓÐÏ̳߳åͻʱ£¬ÒªÓÃ10 ~ 15¸öʱ¼äƬ£¬¶øÊ¼þ¶ÔÏóÓÉÓÚÉæ¼°µ½ÏµÍ³ÄÚºËÒªÓÃ400~600¸öʱ¼äƬ¡£µ±Ò»¸ö»¥³â¶ÔÏó²»ÔÙ±»Ò»¸öÏß³ÌËùÓµÓÐ,Ëü¾Í´¦ÓÚ·¢ÐźÅ״̬¡£ 2£® ·ÖÎöÐźÅÁ¿¶ÔÏóµÄʵÓÃÇé¿öºÍ·½·¨£¬·ÖÎö´´½¨ÐźÅÁ¿¶ÔÏóµÄAPIº¯Êý¸÷²ÎÊýµÄº¬Òå¡£ ÐźÅÁ¿¶ÔÏó¡£ËüÊÇÔÚ»¥³âµÄ»ù´¡ÉϽ¨Á¢µÄ£¬µ«ÐźÅÁ¿Ôö¼ÓÁË×ÊÔ´¼ÆÊýµÄ¹¦ÄÜ£¬Ô¤¶¨ÊýÄ¿µÄÏß³ÌÔÊÐíͬʱ½øÈëҪͬ²½µÄ´úÂë¡£ CreateSemaphore() ´´½¨Ò»¸öÐźÅÁ¿ OpenSemaphore() ´ò¿ªÒ»¸öÒѾ­´´½¨µÄÐźÅÁ¿ ReleaseSemaphore() ÊͷŶÔÐźÅÁ¿µÄËùÓÐȨ

ʵÑéС½á ʵÑé4 £¨Ò»£© ÿ¸öʵÑé¶¼ÄÜÈÏÈÏÕæÕæÍê³É£¬´ÓʵÑéÖÐÌå»áµ½Í¬²½»úÖÆµÄÖØÒªÐÔ¡£Äܹ»ÈÏÕæÑ§Ï°APIº¯Êý£¬²¢½«×Ô¼ºËùѧµÄ֪ʶÔËÓõ½ÊµÑéÖС£ £¨¶þ£© ¶ÔÓÚһЩЧÂÊÒªÇóºÜ¸ßµÄ³ÌÐò£¬²»ÊÊÒËÓÃWindows API£¬¶øÓ¦¸Ã×Ô¼º±àдЧÂʽϸߵÄÏß³Ìͬ²½Ëã·¨£¬¾ÍĿǰ¶øÑÔ£¬Õ⻹ÊÇÎұȽÏǷȱµÄ£¬¼±ÐèÒª¶ÍÁ¶µÄÄÜÁ¦¡£ £¨Èý£© ͨ¹ýÕâ´ÎʵÑ飬Ìå»áµ½Í¬²½»úÖÆµÄÖØÒªÐÔ£¬ÕÆÎÕÁËÓйØÏß³Ìͬ²½µÄһЩ֪ʶ£ºÁ½¸ö»ò¶à¸öÏß³ÌÕùÏàÖ´ÐÐͬһ¶Î´úÂë»ò·ÃÎÊͬһ×ÊÔ´µÄÏÖÏó³ÆÎª¾ºÕù£»¿ÉÄÜÔì³É¾ºÕùµÄ¹²Ïí´úÂë¶Î»ò×ÊÔ´¾Í±»³ÆÎªÁÙ½çÇø£»ÔÚÈκÎʱ¿Ì¶¼ÄÜÓÐÒ»¸öÏß³ÌÔÚÁÙ½çÇøÖеÄÏÖÏó±»³ÆÎª»¥³â¡£ ʵÑé3 ͨ¹ý±¾´ÎʵÑ飬Á˽âÁËÔÚWindowsϵͳÖУ¬½ø³ÌÊÇ×ÊÔ´µÄÓµÓÐÕߣ¬Ïß³ÌÊÇϵͳµ÷¶ÈµÄµ¥Î»¡£½ø³Ì´´½¨ºó£¬ÆäÖ÷Ïß³ÌÒ²Ëæ¼´±»´´½¨¡£Á˽âÁËÏ̵߳ÄÒýÈëÊÇΪÁ˼õÉÙ³ÌÐò²¢·¢Ö´ÐÐʱËù¸¶³öµÄʱ¿Õ¿ªÏú£¬Ê¹µÃ²¢·¢Á£¶È¸üϸ£¬²¢·¢¸üºÃ¡£Õâ¸ö˼·Ï£¬¡°¶ÀÁ¢·ÖÅä×ÊÔ´¡±µÄÈÎÎñÈÔÓɽø³ÌÍê³É£¬×÷Ϊϵͳ×ÊÔ´±£»¤ºÍ·ÖÅäµÄ»ù±¾µ¥Î»£¬¶ø¡°±»µ÷¶È·ÖÅÉÖ´ÐС±µÄÈÎÎñ±»½»¸¶¸øÏ̵߳ÄʵÌåÍê³É£¬Ïß³Ì×÷Ϊϵͳµ÷¶ÈºÍ·ÖÅäµÄ»ù±¾µ¥Î»£¬»á±»Æµ·±µÄµ÷¶ÈºÍÇл»¡£ Óë½ø³ÌÏà±È£¬Ï̵߳ÄÓеãΪ£º ¿ìËÙÏß³ÌÇл»£¬Í¬Ò»¸ö½ø³ÌÖеĶàÏß³ÌÇл»£¬Ö»ÐèÒª¸Ä±ä¶ÑÕ»ºÍ¼Ä´æÆ÷£¬µØÖ·¿Õ¼ä²»Óñ䡣 ͨÐÅÒ×ÓÚʵÏÖ¡£×Ô¶¯¹²Ïí½ø³ÌµÄÄÚ´æºÍÎļþ£¬Ï߳̿ÉÒÔ×ÔÓÉ·ÃÎÊÈ«¾Ö±äÁ¿£¬Í¨ÐÅÊ®·Ö·½±ã£¬¶øÇÒ²»ÐèҪͨ¹ýÄÚºË ¼õÉÙ¹ÜÀí¿ªÏú¡£Ï̴߳´½¨ºÍ³·ÏúµÄ¹¤×÷±È½ø³ÌÉÙ¡£ ²¢·¢³Ì¶È¸ß¡£¶àÏß³ÌÊʺϲ¢Ðй¤×÷ ±¸×¢£º

ËÑË÷¸ü¶à¹ØÓÚ£º OS½ø³Ìͬ²½ÊµÑ鱨¸æ µÄÎĵµ
  • ÊÕ²Ø
  • Î¥¹æ¾Ù±¨
  • °æÈ¨ÈÏÁì
ÏÂÔØÎĵµ10.00 Ôª ¼ÓÈëVIPÃâ·ÑÏÂÔØ
ÍÆ¼öÏÂÔØ
±¾ÎÄ×÷Õߣº...

¹²·ÖÏí92ƪÏà¹ØÎĵµ

Îĵµ¼ò½é£º

} WaitForSingleObject(hMutex, INFINITE) ; i--; ReleaseMutex(hMutex) ; } return j; int main() { DWORD id1,id2; HANDLE hThread[2] ; hMutex = CreateMutex( NULL, // ȱʡµÄ°²È«ÊôÐÔ£¬¾ä±ú²»±»×Ó½ø³Ì¼Ì³Ð FALSE, NULL) ; // Ö»³õʼ»¯£¬²»ÓµÓÐ // ÄäÃûµÄ hThread[0] = CreateThread(0,0,fun1,0,0,&id1); hThread[1] = CreateThread(0,0,fun2,0,0,&id2); WaitForMultipleObje

¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩
µ¥Æª¸¶·ÑÏÂÔØ
ÏÞÊ±ÌØ¼Û£º10 Ôª/·Ý Ô­¼Û:20Ôª
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºfanwen365 QQ£º370150219
Copyright © ÔÆÌ⺣ All Rights Reserved. ËÕICP±¸16052595ºÅ-3 ÍøÕ¾µØÍ¼ ¿Í·þQQ£º370150219 ÓÊÏ䣺370150219@qq.com