日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线程同步机制有临界区、互斥、信号量优缺点

發(fā)布時(shí)間:2024/9/30 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线程同步机制有临界区、互斥、信号量优缺点 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
線程同步技術(shù)。
   1. Critical Sections(臨界段),源代碼中如果有不能由兩個(gè)或兩個(gè)以上線程同時(shí)執(zhí)行的部分,可以用臨界段來使這部分的代碼執(zhí)行串行化。它只能在一個(gè)獨(dú)立的進(jìn)程或一個(gè)獨(dú)立的應(yīng)用程序中使用。使用方法如下:
   //在窗體創(chuàng)建中
   InitializeCriticalSection(Critical1)
   //在窗體銷毀中
   DeleteCriticalSection(Critical1)
   //在線程中
   EnterCriticalSection(Critical1)
   ……保護(hù)的代碼
   LeaveCriticalSection(Critical1)
   2. Mutex(互斥對(duì)象),是用于串行化訪問資源的全局對(duì)象。我們首先設(shè)置互斥對(duì)象,然后訪問資源,最后釋放互斥對(duì)象。在設(shè)置互斥對(duì)象時(shí),如果另一個(gè)線程(或進(jìn)程)試圖設(shè)置相同的互斥對(duì)象,該線程將會(huì)停下來,直到前一個(gè)線程(或進(jìn)程)釋放該互斥對(duì)象為止。注意它可以由不同應(yīng)用程序共享。使用方法如下:
   //在窗體創(chuàng)建中
   hMutex:=CreateMutex(nil,false,nil)
   //在窗體銷毀中
   CloseHandle(hMutex)
   //在線程中
   WaitForSingleObject(hMutex,INFINITE)
   ……保護(hù)的代碼
   ReleaseMutex(hMutex)
   3. Semaphore(信號(hào)量),它與互斥對(duì)象相似,但它可以計(jì)數(shù)。例如可以允許一個(gè)給定資源同時(shí)同時(shí)被三個(gè)線程訪問。其實(shí)Mutex就是最大計(jì)數(shù)為一的Semaphore。使用方法如下:
   //在窗體創(chuàng)建中
   hSemaphore:= CreateSemaphore(nil,lInitialCount,lMaximumCount,lpName)
   //在窗體銷毀中
   CloseHandle(hSemaphore)
   //在線程中
   WaitForSingleObject(hSemaphore,INFINITE)
   ……保護(hù)的代碼 與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的线程同步机制有临界区、互斥、信号量优缺点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。