成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

每天一道面試題-CPU偽共享

開發 前端
如果要獲取一個內存中的數據,首先會從一級緩存中獲取,如果一級緩存中沒有,就會從二級緩存中獲取,如果二級緩存中沒有,就會從三級緩存中獲取,如果三級緩存中沒有,就會從內存中獲取。

前言:

了不起:又到了每天一到面試題的時候了!學弟,最近學習的怎么樣啊 

了不起學弟:最近學習的還不錯,每天都在學習,每天都在進步! 

了不起:那你最近學習的什么呢? 

了不起學弟:最近在學習CPU偽共享,但是不太理解,能不能給我講講呢?

正文:

首先,我們先了解一下CPU的緩存模型。

CPU的緩存分為三層,一級緩存,二級緩存,三級緩存。

如果要獲取一個內存中的數據,首先會從一級緩存中獲取,如果一級緩存中沒有,就會從二級緩存中獲取,如果二級緩存中沒有,就會從三級緩存中獲取,如果三級緩存中沒有,就會從內存中獲取。

一級緩存是最快的,越到后面就越慢。那CPU的緩存,是由緩存行組成的,每個緩存行的大小是64字節,也就是說,如果我們要獲取一個數據,那么就會把這個數據所在的內存地址,以及這個數據所在的內存地址的前后64字節的數據,都會加載到緩存行中。 

聊到這里,我就給大家看看常見的偽共享問題的案例。 

假設有兩個線程a和b,同時有兩個long類型的變量A和B。兩個變量都是互相緊挨著的。那線程a要去操作A,就會把變量A和B一起帶入的緩存行,線程b要去操作變量B,也會同時把AB帶入緩存行。此時如果線程a把A做了修改,再通過BUS總線進行了通知,內存再做了修改。線程b重新從內存獲取變量B,那么此時這種還需要從內存獲取變量,這就是偽共享了。 

偽共享:變量AB毫不相關,但是一旦其中一個變量被修改,另一個變量也會被重新加載。

偽共享的解決方案: 

  1. 使用緩存行填充,也就是說,我們在變量AB之間,加入一些無用的變量,讓AB不在同一個緩存行中,這樣就不會出現偽共享的問題了。

舉例:

private static class Padding{
    private volatile long a;
    public volatile long a1,a2,a3,a4,a5,a6,a7;
    private volatile long b;
  }
2.使用@Contened注解在變量上,同時在jdk8中還需要在jvm啟動參數中加入
-XX:-RestrictContended,jdk8以上的版本就不需要這個參數即可,
這樣就可以解決偽共享的問題了。
private static class Padding{
    @Contended
    private volatile long a;
    @Contended
    private volatile long b;
  }

結尾:

今天就給大家分享了一下關于CPU偽共享的問題,大家如果對CPU緩存模型那塊還有疑問,可以多查找一下資料,比如MESI緩存一致模型等等。

責任編輯:武曉燕 來源: Java面試教程
相關推薦

2024-10-11 17:09:27

2011-05-23 11:27:32

面試題面試java

2018-03-06 15:30:47

Java面試題

2009-08-11 14:59:57

一道面試題C#算法

2009-08-11 10:12:07

C#算法

2023-02-04 18:24:10

SeataJava業務

2021-05-31 07:55:44

smartRepeatJavaScript函數

2017-11-21 12:15:27

數據庫面試題SQL

2022-02-08 18:09:20

JS引擎解析器

2022-04-08 07:52:17

CSS面試題HTML

2009-08-11 15:09:44

一道面試題C#算法

2021-03-16 05:44:26

JVM面試題運行時數據

2021-10-28 11:40:58

回文鏈表面試題數據結構

2015-09-02 14:09:19

面試題程序設計

2017-03-10 09:33:16

JavaScript類型

2017-09-13 07:15:10

Python讀寫文件函數

2021-03-27 10:59:45

JavaScript開發代碼

2011-03-02 10:58:16

SQL server入門面試題

2011-06-14 09:12:03

JavaScript

2018-02-01 16:26:44

面試題static變量
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美乱操 | 亚洲欧美在线视频 | 日韩三级电影一区二区 | 中国一级特黄真人毛片免费观看 | 国产在线观看av | 国产精品久久久久久久久久免费看 | 国产小视频精品 | 欧美视频一区 | 亚洲国产精品一区在线观看 | 欧洲一级黄 | 国产一区二区三区免费 | 日本 欧美 国产 | 天天爽天天操 | 国产一级电影网 | 国产一区二区 | 午夜影院毛片 | 国产日韩精品一区 | 久久久久网站 | 午夜欧美一区二区三区在线播放 | 久久久国产一区二区三区四区小说 | 国产区精品视频 | 国产高清一区二区 | 狠狠做深爱婷婷综合一区 | 自拍偷拍第一页 | www.99re| 插插宗合网 | 99国内精品| 日韩有码一区二区三区 | 亚洲精品久久久久久久久久久久久 | 国产日韩精品一区 | 国产精品区一区二区三 | 91豆花视频| 亚洲 欧美 日韩在线 | 一区二区视频在线观看 | 中文字幕日韩欧美一区二区三区 | 久艹av | 国产精品毛片一区二区在线看 | 毛片大全 | 欧产日产国产精品视频 | 亚洲精品二区 | 在线观看av网站永久 |