C/C++

               摘要: 意圖
          無論什么時候當臨界區中的代碼僅僅需要加鎖一次,同時當其獲取鎖的時候必須是線程安全的,可以用Double Checked Locking 模式來減少競爭和加鎖載荷。


          動機
          1、標準的單例。開發正確的有效的并發應用是困難的。程序員必須學習新的技術(并發控制和防止死鎖的算法)和機制(如多線程和同步API)。此外,許多熟悉的設計模式(如單例和迭代子)在包含不使用任何并發上下文假設的順序程序中可以工作的很好。為了說明這點,考慮一個標準的單例模式在多線程環境下的實現。單例模式保證一個類僅有一個實例同時提供了全局唯一的訪問這個實例的入口點。在c++程序中動態分配單例對象是通用的方式,這是因為c++程序沒有很好的定義靜態全局對象的初始化次序,因此是不可移植的。而且,動態分配避免了單例對象在永遠沒有被使用情況下的初始化開銷。  閱讀全文

          posted @ 2006-09-13 23:16 killvin| 編輯 |

          主站蜘蛛池模板: 江源县| 宁化县| 定西市| 商洛市| 大悟县| 保山市| 措勤县| 远安县| 宜阳县| 新昌县| 呼和浩特市| 黄梅县| 宁乡县| 栾川县| 探索| 剑阁县| 铁力市| 嘉黎县| 绥化市| 衡阳市| 工布江达县| 光泽县| 麻栗坡县| 诸暨市| 成武县| 色达县| 都兰县| 武乡县| 建昌县| 诸暨市| 松江区| 淳安县| 五华县| 铜鼓县| 无棣县| 永和县| 芮城县| 赤水市| 商河县| 深泽县| 凤冈县|