<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### Java中的偽共享 解決偽共享最直接的方法就是填充(padding),例如下面的VolatileLong,一個long占8個字節,Java的對象頭占用8個字節(32位系統)或者12字節(64位系統,默認開啟對象頭壓縮,不開啟占16字節)。一個緩存行64字節,那么我們可以填充6個long(6 \* 8 = 48 個字節)。這樣就能避免多個VolatileLong共享緩存行 ~~~ public class VolatileLong { private volatile long v; // private long v0, v1, v2, v3, v4, v5 // 去掉注釋,開啟填充,避免緩存行共享 } ~~~ 這是最簡單直接的方法,Java 8中引入了一個更加簡單的解決方案:`@Contended`注解: ~~~ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.TYPE}) public @interface Contended { String value() default ""; } ~~~ Contended注解可以用于類型上和屬性上,加上這個注解之后虛擬機會自動進行填充,從而避免偽共享。這個注解在Java8 ConcurrentHashMap、ForkJoinPool和Thread等類中都有應用。我們來看一下Java8中ConcurrentHashMap中如何運用Contended這個注解來解決偽共享問題。以下說的ConcurrentHashMap都是Java8版本
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看