锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 緗戜笂寰堝鏄撴壘鍒頒竴涓敤boost::shared_mutex鏉ヤ綔涓鴻鍐欓攣鐨勪緥瀛愶細(xì) 涓鐩存病鏈夋鐤戣繃榪欎釜鍋氭硶錛岀洿鍒版渶榪戦」鐩腑鍑虹幇涓涓閿侀棶棰橈紝鏌ヤ簡(jiǎn)寰堜箙鎵嶅彂鐜版槸涓婇潰榪欑鍐欐硶閫犳垚鐨勩?/p>
鍐欐祴璇曚唬鐮佽繕鍘熸閿佺殑鎯呮櫙濡備笅錛?/p>
鎯呭艦鎻忚堪濡備笅錛?/p>
1錛氫富綰跨▼鍏堢粰m_mutex鍔犺閿併?/p>
2錛氫富綰跨▼鏁呮剰鐫$湢3縐掑皢鎵ц鏉冮檺鍒囨崲鍑哄幓銆?/p>
3錛歠unc1綰跨▼鑾峰緱鎵ц鏈轟細(xì)錛屽皾璇曞姞鍐欓攣琚寕璧楓傚洜涓轟富綰跨▼宸茬粡鏈変竴涓閿佸崰鐢紝鍐欓攣蹇呴』絳夊緟榪欎釜璇婚攣閲婃斁鎵嶈兘榪涘叆銆?/p>
4錛氫富綰跨▼鐫$湢3縐掗啋鏉ワ紝鍚庣畫(huà)浠g爜鎯寵幏鍙栦竴涓閿併傜敱浜庤繖涓椂鍊欏凡緇忔湁涓涓啓閿佸湪絳夊緟榪涘叆錛岄偅涔堣繖涓閿佹帓闃熷湪鍐欓攣鍚庨潰錛屽悓鏍瘋鎸傝搗銆?/p>
5錛氫富綰跨▼鍜宖unc1綰跨▼閮借鎸傝搗浜?jiǎn)锛屽彂鐢熸閿併?/p>
涓婇潰鐨勬祴璇曚唬鐮侊紝濡傛灉涓棿娌℃湁sleep(3000)錛屽嚭鐜版閿佺殑姒傜巼寰堜綆錛屼絾鎬誨綊鏄瓨鍦ㄦ閿佺殑鍙兘銆?/p>
鎬葷粨錛?/p>
浠ュ墠涓鐩磋涓簉eadLock閿佸拰閫掑綊閿佷竴鏍鳳紝鍦ㄥ悓涓涓嚎紼嬪嬈¤繘鍏ユ病鏈夊叧緋繪墠浼?xì)閫犳垚涓婇潰鐨勬閿佸嚭鐜般傛墍浠ワ紝boost::shared_lock浣跨敤瑕佸皬蹇?jī)锛屽崈涓囦笉瑕佸悓涓涓嚎紼嬪嬈¤繘鍏ャ?/p>
]]>
Stroe newed objects in smart pointers in standalone statements璇瘋浣忥細(xì)
1錛?span style="font: 7pt 'Times New Roman'"> 瀵硅薄瀛樺偍浜庯紙緗叆錛夋櫤鑳芥寚閽堝唴銆傚鏋滀笉榪欐牱鍋氾紝涓鏃﹀紓甯歌鎶涘嚭錛屾湁鍙兘瀵艱嚧闅句互瀵熻鐨勮祫婧愭硠婕忋?/span>
――――――――――――――――――――――――――――
Widget>(new Widget),priority());
涔嬪墠錛岀紪璇戝櫒蹇呴』鍒涘緩浠g爜錛屽仛浠ヤ笅涓変歡浜嬶細(xì)
1錛?span style="font: 7pt 'Times New Roman'"> 2錛?span style="font: 7pt 'Times New Roman'"> ”
3錛?span style="font: 7pt 'Times New Roman'"> 鏋勯犲嚱鏁般?/span>
涓瀹氭墽琛屼簬3濡傛灉鎵ц欏哄簭鏄互涓嬶細(xì)
1”
2錛庤皟鐢?/span>trl::shared_ptr姝ょ鎯呭喌涓嬶紝涓囦竴瀵?/span>priority”榪斿洖鐨勬寚閽堝皢浼?xì)閬楀け锛屽洜湄?fù)瀹冨皻鏈緗叆trl::shared_ptr――――――――――――――――――――――――――――
瀵硅薄緗叆鏅鴻兘鎸囬拡銆?/span>
Widget> pw(new Widget);
processWidget(pw,priority());