<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    在路上

    路上有驚慌,路上有理想

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      28 Posts :: 1 Stories :: 10 Comments :: 0 Trackbacks
    以下只是一些概念


    1.SemaphoreCountDownLatch
     
    Semaphore 可用于控制特定資源請求(線程/操作)數量
     
    CountDownLatch 在功能上類似于Semaphore。區別是,Semaphore允許一次一個線程的話,CountDownLatch可以允許多個線程在特定的時間一起執行。

    2.CAS操作
      根據英文直譯其實可以理解其含義,compare and set.

      CAS 操作包含三個操作數 —— 內存位置(V)、預期原值(A)和新值(B)。如果內存位置的值與預期原值相匹配,那么處理器會自動將該位置值更新為新值。否則,處理器不做任何操作。CAS 認為位置 V 應該包含值 A;如果包含該值,則將 B 放到這個位置;否則,不要更改該位置,只告訴我這個位置現在的值即可通常將 CAS 用于同步的方式是從地址 V 讀取值 A,執行多步計算來獲得新值 B,然后使用 CAS 將 V 的值從 A 改為 B。如果 V 處的值尚未同時更改,則 CAS 操作成功。

    3.ABA問題

      因為在更改 V 之前,CAS 主要詢問“V 的值是否仍為 A”,所以在第一次讀取 V 以及對 V 執行 CAS 操作之前,如果將值從 A 改為 B,然后再改回 A,會使基于 CAS 的算法混亂。在這種情況下,CAS 操作會成功,但是在一些情況下,結果可能不是您所預期的。這類問題稱為 ABA 問題

    4.原子操作

       A與B兩個操作。從執行A的線程看,當其他線程執行B時,要么B全部執行完成,要么一點都不執行。這樣A與B互為原子操作。要保證數據狀態的一致性,要在單一的原子操作中更新所有相關聯的狀態。

    5.可見性
     
       在單線程環境下,讀寫操作都在一個線程內完成,不存在可見性問題。但是,當讀與寫操作不在同一個線程內時,就需要有可見性的要求——即可變的共享變量對所有線程都是可見的。

    6.重排序

        JVM實現中,線程內部維持順序化語義。如果程序的最終結果等同于它在嚴格的順序化環境下的結果,那么指令的執行順序就可能與代碼的順序不一致。這個過程通過叫做指令的重排序。比如Java存儲模型允許編譯器重排序操作指令,在寄存器中緩存數值,還允許CPU重排序,并在處理器的緩存中緩存數值。

       當然,在沒有同步的多線程情況下,編譯器,處理器,運行時安排操作的執行順序可能完全出人意料。

    7.內部鎖

      每個Java對象都可以隱士的扮演一個用于同步的鎖的角色。比如synchronized(object){},執行線程進入synchronized塊 之前自動獲得鎖。無論是正確執行或是拋出異常,最終都會釋放該鎖。內部鎖是一種互斥鎖(mutex)——至多只有一個線程可以擁有鎖。JDK中有該鎖的實 現。

    8.鎖與內存

       鎖不僅僅是關于同步與互斥,也是關于內存可見性的。為了保證所有線程都能訪問共享變量的最新值,讀和寫的線程必須使用公用的鎖進行同步。

    9.鎖與volatile

       加鎖可以保證可見性與原子性,volatile只能保證可見性。

    10.happen-before法則

      Java存儲模型有一個happens-before原則,就是如果動作B要看到動作A的執行結果(無論A/B是否在同一個線程里面執行),那么A/B就需要滿足happens-before關系。比如一個對象構造函數的結束happens-before與該對象的finalizer的開始


    參考:https://www.ibm.com/developerworks/cn/java/j-jtp11234/

         http://www.ibm.com/developerworks/cn/java/j-5things5.html

         http://www.tkk7.com/xylz/archive/2010/07/03/325168.html

        《Java 并發編程實踐》

    posted on 2010-12-15 18:18 阮步兵 閱讀(1741) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 久久精品国产亚洲av品善| 亚洲第一成年人网站| 色九月亚洲综合网| 最近中文字幕无吗免费高清 | 亚洲人成影院在线无码观看| 在线亚洲午夜片AV大片| 丁香花免费完整高清观看 | 国产亚洲精品免费| 老外毛片免费视频播放| 亚洲国产精品一区二区九九 | 国产精品免费久久| 久久夜色精品国产亚洲| 你懂的免费在线观看网站| 77777_亚洲午夜久久多人 | 在线免费观看毛片网站| 亚洲精品V天堂中文字幕| 免费少妇a级毛片人成网| 国产成人精品免费视频大全| 久久国产亚洲精品麻豆| 亚洲精品视频在线免费| 日本亚洲精品色婷婷在线影院| 毛片a级毛片免费观看品善网| 亚洲第一se情网站| 亚洲中文字幕第一页在线| 一级毛片成人免费看免费不卡| 亚洲综合亚洲国产尤物| 狠狠久久永久免费观看| 久久精品成人免费观看97| 久久久无码精品亚洲日韩按摩| 久久这里只有精品国产免费10| 老司机午夜免费视频| 亚洲国产成人久久精品动漫 | 亚洲乱码中文字幕综合234| 在线观看黄片免费入口不卡| 亚洲视频国产视频| 性做久久久久免费看| 男的把j放进女人下面视频免费| 精品亚洲AV无码一区二区三区 | 国产91免费在线观看| 免费一级毛suv好看的国产网站| 水蜜桃亚洲一二三四在线|