boost官方文档同步机制Synchronization mechanisms overview
生活随笔
收集整理的這篇文章主要介紹了
boost官方文档同步机制Synchronization mechanisms overview
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
參考鏈接
- 官方文檔
Synchronization mechanisms overview
- Named And Anonymous Synchronization Mechanisms
- Types Of Synchronization Mechanisms
- 如前所述,如果不能有效地同步對(duì)內(nèi)存的訪問,那么通過(guò)內(nèi)存映射文件或共享內(nèi)存對(duì)象在進(jìn)程之間共享內(nèi)存的能力就不是很有用。這和線程同步機(jī)制的問題是一樣的,線程之間共享堆內(nèi)存和全局變量,但對(duì)這些資源的訪問通常需要通過(guò)mutex和條件變量進(jìn)行同步。Boost.Threads實(shí)現(xiàn)了同一進(jìn)程內(nèi)線程之間的這些同步工具。Boost.Interprocess實(shí)現(xiàn)了類似的機(jī)制來(lái)同步不同進(jìn)程的線程。
Named And Anonymous Synchronization Mechanisms
- Boost.Interprocess提供了兩種類型的同步對(duì)象。
- 命名的實(shí)用程序。當(dāng)兩個(gè)進(jìn)程想要?jiǎng)?chuàng)建這種類型的對(duì)象時(shí),兩個(gè)進(jìn)程必須使用相同的名稱創(chuàng)建或打開一個(gè)對(duì)象。這類似于創(chuàng)建或打開文件:一個(gè)進(jìn)程使用名稱為 filename 的 fstream 創(chuàng)建一個(gè)文件,另一個(gè)進(jìn)程使用具有相同 filename 參數(shù)的另一個(gè) fstream 打開該文件。每個(gè)進(jìn)程都使用不同的對(duì)象來(lái)訪問資源,但兩個(gè)進(jìn)程使用的是同一個(gè)底層資源。適用于不同進(jìn)程之間對(duì)于相同文件的操作
- 匿名實(shí)用程序。由于這些實(shí)用程序沒有名字,兩個(gè)進(jìn)程必須通過(guò)共享內(nèi)存或內(nèi)存映射文件來(lái)共享同一個(gè)對(duì)象。這與傳統(tǒng)的線程同步對(duì)象類似。兩個(gè)進(jìn)程共享同一個(gè)對(duì)象 與線程同步不同的是,在線程同步中,同一進(jìn)程的線程之間共享全局變量和堆內(nèi)存,而來(lái)自不同進(jìn)程的兩個(gè)線程之間只能通過(guò)映射同一可映射資源的映射區(qū)域(例如共享內(nèi)存或內(nèi)存映射文件)共享對(duì)象。適用于同一進(jìn)程不同線程之間對(duì)于相同文件的操作
- 每種類型都有自己的優(yōu)缺點(diǎn)。
- 對(duì)于簡(jiǎn)單的同步任務(wù)來(lái)說(shuō),命名的實(shí)用程序更容易處理,因?yàn)閮蓚€(gè)進(jìn)程都不需要?jiǎng)?chuàng)建一個(gè)共享內(nèi)存區(qū)域并在那里構(gòu)建同步機(jī)制。
- 當(dāng)使用內(nèi)存映射對(duì)象獲得同步實(shí)用程序的自動(dòng)持久化時(shí),匿名實(shí)用程序可以被序列化到磁盤上。人們可以在內(nèi)存映射的文件中構(gòu)造一個(gè)同步實(shí)用程序,重新啟動(dòng)系統(tǒng),再次映射文件,然后再次使用同步實(shí)用程序,而不會(huì)有任何問題。這一點(diǎn)在命名同步實(shí)用程序中是無(wú)法實(shí)現(xiàn)的。
- 命名實(shí)用程序和匿名實(shí)用程序的主要接口區(qū)別在于構(gòu)造函數(shù)。通常匿名實(shí)用程序只有一個(gè)構(gòu)造函數(shù),而命名實(shí)用程序有多個(gè)構(gòu)造函數(shù),其第一個(gè)參數(shù)是請(qǐng)求創(chuàng)建、打開或打開或創(chuàng)建底層資源的特殊類型。
- 另一方面,只能創(chuàng)建匿名同步實(shí)用程序,進(jìn)程必須使用其他機(jī)制同步,誰(shuí)創(chuàng)建實(shí)用程序。
同步機(jī)制的類型
- 除了命名/匿名的特性之外,Boost.Interprocess還提供了以下同步實(shí)用程序。
- Mutexes(命名和匿名)
- 條件變量(命名和匿名)
- Semaphores (named and anonymous)
- 可升級(jí)的mutexes
- 文件鎖
總結(jié)
以上是生活随笔為你收集整理的boost官方文档同步机制Synchronization mechanisms overview的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《蝙蝠侠:阿甘起源》全支线图文攻略
- 下一篇: 《FORSPOKEN》访谈:有超过一百种