xylz,imxylz

          關注后端架構、中間件、分布式和并發編程

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            111 隨筆 :: 10 文章 :: 2680 評論 :: 0 Trackbacks

          11 2010 檔案

          posted @ 2010-11-24 14:34 imxylz 閱讀(6285) | 評論 (16)  編輯

               摘要: 本小節是《并發容器》的最后一部分,這一個小節描述的是針對List/Set接口的一個線程版本。
          在《并發隊列與Queue簡介》中介紹了并發容器的一個概括,主要描述的是Queue的實現。其中特別提到一點LinkedList是List/Queue的實現,但是LinkedList確實非線程安全的。不管BlockingQueue還是ConcurrentMap的實現,我們發現都是針對鏈表的實現,當然盡可能的使用CAS或者Lock的特性,同時都有通過鎖部分容器來提供并發的特性。而對于List或者Set而言,增、刪操作其實都是針對整個容器,因此每次操作都不可避免的需要鎖定整個容器空間,性能肯定會大打折扣。要實現一個線程安全的List/Set,只需要在修改操作的時候進行同步即可,比如使用java.util.Collections.synchronizedList(List)或者java.util.Collections.synchronizedSet(Set)。當然也可以使用Lock來實現線程安全的List/Set。
          通常情況下我們的高并發都發生在“多讀少寫”的情況,因此如果  閱讀全文
          posted @ 2010-11-23 22:22 imxylz 閱讀(14714) | 評論 (1)  編輯

               摘要: 可以在對中對元素進行配對和交換的線程的同步點。每個線程將條目上的某個方法呈現給 exchange 方法,與伙伴線程進行匹配,并且在返回時接收其伙伴的對象。Exchanger 可能被視為 SynchronousQueue 的雙向形式。
          換句話說Exchanger提供的是一個交換服務,允許原子性的交換兩個(多個)對象,但同時只有一對才會成功。先看一個簡單的實例模型。  閱讀全文
          posted @ 2010-11-22 22:31 imxylz 閱讀(7763) | 評論 (0)  編輯

          posted @ 2010-11-02 16:09 imxylz 閱讀(5780) | 評論 (19)  編輯


          ©2009-2014 IMXYLZ
          主站蜘蛛池模板: 新泰市| 桐梓县| 修水县| 赤峰市| 潜山县| 白河县| 保德县| 离岛区| 永泰县| 乌海市| 紫云| 怀来县| 梓潼县| 扎赉特旗| 蓬溪县| 夏河县| 内黄县| 滨海县| 南溪县| 西平县| 陵川县| 黄龙县| 澄城县| 黔西县| 株洲县| 鄂温| 红原县| 宝山区| 凤山县| 龙游县| 神农架林区| 南澳县| 吐鲁番市| 清涧县| 三门峡市| 阜城县| 鹤庆县| 老河口市| 得荣县| 桂阳县| 休宁县|