精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

面試官:談?wù)勀銓?Volatile 的理解吧

開發(fā) 后端
volatile 在指令之間插入內(nèi)存屏障 + 緩存一致性協(xié)議,保證按照特定順序執(zhí)行和某些變量的可見性。volatile 通過 內(nèi)存屏障通知 CPU 和編譯器阻止指令重排優(yōu)化來維持有序性。

前言

在之前的文章 深入分析 Synchronized 原理 介紹了 Synchronized是一種鎖的機(jī)制,存在阻塞和性能的問題,而 volatile 是 java 虛擬機(jī)提供的最輕量級的同步機(jī)制,volatile 主要提供修飾共享變量賦予 “可見性” 和 “有序性”。從簡單的 Demo 引出我們今天的主題 -- volatile。

Demo -- 多線程共享對象 控制執(zhí)行開關(guān)。

public class Demo {
private static boolean switchStatus = false;
public static void main(String[] args) {
new Thread(() -> {
System.out.println("開始工作");
while (!switchStatus) ;
System.out.println("結(jié)束工作");
}).start();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
switchStatus = true;
System.out.println("命令停止工作");
}
}

本意是想通過 switchStatus 作為控制工作線程的開關(guān),但是實際執(zhí)行后,會發(fā)現(xiàn)結(jié)果并沒有按照預(yù)期 輸出"結(jié)束工作",而是失聯(lián)了一樣停不下來了,在死循環(huán)中出不來了。

但是如果在上面的 Demo 進(jìn)行稍微的修改即可滿足預(yù)期: private static volatile boolean switchStatus = false; 此時符合預(yù)期關(guān)閉開關(guān)時,工作線程也隨之關(guān)閉了。接下我會針對這2個現(xiàn)象原理進(jìn)行解答,為了讀者更好的理解,得先引入幾個知識點(計算機(jī)內(nèi)存模型、JMM-Java 內(nèi)存模型)。

計算機(jī)內(nèi)存模型

為了更好地理解后續(xù) JMM 和 volatile,我們先了解下計算機(jī)內(nèi)存模型,簡單地介紹下:

程序執(zhí)行時,CPU接收到指令 需要進(jìn)行計算時,讀取所需要的數(shù)據(jù),會先嘗試從 CPU Cache 中獲取,若沒有再從主內(nèi)存中獲取,計算完成后,將結(jié)果寫入 CPU Cache ,若沒有特殊指令的情況下,會根據(jù)操作系統(tǒng)自身定義的時間 一段時間會將 CPU Cache 刷新到主內(nèi)存中(未被volatile 修飾的普通變量);當(dāng)然遇到特殊的指令會將 CPU Cache 刷新到主內(nèi)存中(被volatile 修飾的變量 就是依賴這個特性實現(xiàn)可見性)。

  • CPU:處理程序中各種指令,需要和CPU Cache 和 內(nèi)存打交道。
  • CPU Cache:由于 CPU 和內(nèi)存的速度差 幾個數(shù)量級,CPU 直接和內(nèi)存打交道很浪費 CPU 性能,因此引入了 CPU Cache 降低 CPU 的性能損耗。
  • 緩存一致性協(xié)議/總線鎖機(jī)制:引入 CPU Cache降低了 CPU性能損耗的問題,同時引入了緩存不一致的問題,為了解決這個這個問題通過緩存一致性協(xié)議/總線鎖機(jī)制 進(jìn)行解決。

總線鎖機(jī)制

CPU和其他功能部件是通過總線通信的,如果在總線加LOCK#鎖,那么在鎖住總線期間,其他CPU是無法訪問內(nèi)存,這樣一來,效率就比較低了。因此需要進(jìn)行優(yōu)化,細(xì)化控制鎖的粒度,我們只需要保證,對于被多個CPU緩存的同一份數(shù)據(jù)是一致的就行,所以引入了緩存鎖,他的核心機(jī)制就是緩存一致性協(xié)議。

緩存一致性協(xié)議

為了達(dá)成數(shù)據(jù)訪問的一致性,需要各個處理器在訪問內(nèi)存時,遵循一些協(xié)議,在讀寫時根據(jù)協(xié)議來操作,常見的協(xié)議有,MSI,MESI,MOSI等等,最常見的就是MESI協(xié)議;MESI表示緩存行的四種狀態(tài)(modify、 Exclusive、Shared、 Invalid)。

嗅探技術(shù)

如何保證當(dāng)前處理器的內(nèi)部緩存、主內(nèi)存和其他處理器的緩存數(shù)據(jù)在總線上保持一致的?多處理器總線嗅探。

在多處理器下,為了保證各個處理器的緩存是一致的,就會實現(xiàn)緩存緩存一致性協(xié)議,每個處理器通過嗅探在總線上傳播的數(shù)據(jù)來檢查自己的緩存值是不是過期了,如果處理器發(fā)現(xiàn)自己緩存行對應(yīng)的內(nèi)存地址被修改,就會將當(dāng)前處理器的緩存行設(shè)置無效狀態(tài),當(dāng)處理器對這個數(shù)據(jù)進(jìn)行修改操作的時候,會重新從系統(tǒng)內(nèi)存中把數(shù)據(jù)庫讀到處理器緩存中。

Java內(nèi)存模型

  • Java虛擬機(jī)規(guī)范試圖定義一種Java內(nèi)存模型,來屏蔽掉各種硬件和操作系統(tǒng)的內(nèi)存訪問差異,以實現(xiàn)讓Java程序在各種平臺上都能達(dá)到一致的內(nèi)存訪問效果。
  • 為了更好地執(zhí)行性能,java內(nèi)存模型并沒有限制執(zhí)行引擎使用處理器的特定寄存器或緩存來和主內(nèi)存打交道,也沒有限制編譯器進(jìn)行調(diào)整代碼順序優(yōu)化。所以Java內(nèi)存模型會存在緩存一致性問題和指令重排序問題的。
  • Java內(nèi)存模型規(guī)定所有的變量都是存在主內(nèi)存當(dāng)中(類似于計算機(jī)模型中的物理內(nèi)存),每個線程都有自己的工作內(nèi)存(類似于計算機(jī)模型的高速緩存)。這里的變量包括實例變量和靜態(tài)變量,但是不包括局部變量,因為局部變量是線程私有的。
  • 線程的工作內(nèi)存保存了被該線程使用的變量的主內(nèi)存副本,線程對變量的所有操作都必須在工作內(nèi)存中進(jìn)行,而不能直接操作操作主內(nèi)存。并且每個線程不能訪問其他線程的工作內(nèi)存。

舉個例子:

# 初始值 
i = 0;
# 線程A 線程B同時進(jìn)行操作
i = i + 1;

首先,執(zhí)行線程A從主內(nèi)存中讀取到 i=0,到工作內(nèi)存。然后在工作內(nèi)存中,賦值 i+1,工作內(nèi)存就得到 i=1,最后把結(jié)果寫回主內(nèi)存。如果是單線程的話,該語句執(zhí)行是沒問題的。但是在多線程的情況下,線程B的本地工作內(nèi)存和線程A的工作內(nèi)存讀取的時間相同都是 i=0,但是線程A將 i=1寫入主內(nèi)存中,線程B不知情的情況下,也做了 i+1 的操作,此時就出現(xiàn)可見性帶來問題了:連續(xù)2次的 i=i+1 最終的結(jié)果是1。

volatiole 可見性、有序性

在之前的文章 深入分析 Synchronized 原理 已經(jīng)介紹過 原子性、可見性、有序性定義,這里也就不展開說了。

先說結(jié)論:依賴于 CPU 緩存一致性協(xié)議 和 內(nèi)存屏障 解決了可見性的問題。

正常來說,volatile 基于緩存一致性協(xié)議就應(yīng)該可以實現(xiàn)可見性(在上面已經(jīng)介紹過 緩存一致性協(xié)議和嗅探技術(shù)),但是由于 Java 為了提高性能允許重排序(編譯器重排序 和 處理器重排序),因此需要通過內(nèi)存屏障來防止重排序,來保證每個線程執(zhí)行的每個指令有一定的順序性。

java 內(nèi)存屏障

java的內(nèi)存屏障通常所謂的四種即 LoadLoad、StoreStore、 LoadStore、StoreLoad 實際上也是上述兩種的組合,完成一系列的屏障和數(shù)據(jù)同步功能。

  • LoadLoad屏障:對于這樣的語句Load1; LoadLoad; Load2,在Load2及后續(xù)讀取操作要讀取的數(shù)據(jù)被訪問前,保證Load1要讀取的數(shù)據(jù)被讀取完畢。
  • StoreStore屏障:對于這樣的語句Store1; StoreStore; Store2,在Store2及后續(xù)寫入操作執(zhí)行前,保證Store1的寫入操作對其它處理器可見。
  • LoadStore屏障:對于這樣的語句Load1; LoadStore; Store2,在Store2及后續(xù)寫入操作被刷出前,保證Load1要讀取的數(shù)據(jù)被讀取完畢。
  • StoreLoad屏障:對于這樣的語句Store1; StoreLoad; Load2,在Load2及后續(xù)所有讀取操作執(zhí)行前,保證Store1的寫入對所有處理器可見。它的開銷是四種屏障中最大的。在大多數(shù)處理器的實現(xiàn)中,這個屏障是個萬能屏障,兼具其它三種內(nèi)存屏障的功能。

volatile 語義的內(nèi)存屏障

  • 在每個 volatile 寫操作前插入 StoreStore 屏障,在寫操作后插入 StoreLoad 屏障。
  • 在每個 volatile 讀操作前插入 LoadLoad 屏障,在讀操作后插入 LoadStore 屏障。
  • 由于內(nèi)存屏障的作用,避免了 volatile 變量和其它指令重排序、線程之間實現(xiàn)了通信,使得 volatile 表現(xiàn)出了鎖的特性。

舉一個 volatile 防止指令重排的場景

java 中 DLC單例模式 大家應(yīng)該很熟悉了,只不過大家是否有注意到 uniqueInstance 被 volatile 修飾的作用嗎? 就是為了防止指令重排。

public class Singleton {
private volatile static Singleton uniqueInstance;
private Singleton() {
}
public static Singleton getInstance() {
if (uniqueInstance != null) {
synchronized (Singleton.class) {
if (uniqueInstance != null) {
uniqueInstance = new Singleton();
}
}
}
return uniqueInstance;
}
}

初始化一個類,會產(chǎn)生多條匯編指令,總結(jié)下來主要執(zhí)行下面三點:

  1. 給 uniqueInstance 的實例分配內(nèi)存。
  2. 初始化 Singleton 的構(gòu)造器。
  3. 將 uniqueInstance 對象指向分配的內(nèi)存空間(按順序到這步 uniqueInstance 初始化完成)。

理想的狀態(tài)下:1 -> 2 -> 3,但是 Java 為了提高性能允許重排序,可能會將初始化一個類的順序進(jìn)行變化,比如:1 -> 3 -> 2,這種情況下就可能會出現(xiàn)NPE,修飾了volatile 防止重排序,避免獲取到 uniqueInstance 未初始化完成,導(dǎo)致NPE

最后簡單總結(jié)下:volatile 在指令之間插入內(nèi)存屏障 + 緩存一致性協(xié)議,保證按照特定順序執(zhí)行和某些變量的可見性。volatile 通過 內(nèi)存屏障通知 CPU 和編譯器阻止指令重排優(yōu)化來維持有序性。

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2024-09-27 15:43:52

零拷貝DMAIO

2025-02-21 15:25:54

虛擬線程輕量級

2025-03-21 00:00:05

Reactor設(shè)計模式I/O 機(jī)制

2024-10-24 16:14:43

數(shù)據(jù)傳輸CPU零拷貝

2025-08-18 00:00:00

零拷貝系統(tǒng)調(diào)用函數(shù)

2024-06-13 08:01:19

2024-08-27 12:36:33

2024-10-12 16:25:12

2019-07-26 06:42:28

PG架構(gòu)數(shù)據(jù)庫

2024-08-26 14:52:58

JavaScript循環(huán)機(jī)制

2024-09-26 16:01:52

2021-11-25 10:18:42

RESTfulJava互聯(lián)網(wǎng)

2021-08-09 07:47:40

Git面試版本

2025-01-13 09:24:32

2025-04-09 00:00:00

2024-08-23 09:02:56

2020-12-01 08:47:36

Java異常開發(fā)

2020-06-12 15:50:56

options前端服務(wù)器

2021-11-05 10:07:13

Redis哈希表存儲

2020-06-19 15:32:56

HashMap面試代碼
點贊
收藏

51CTO技術(shù)棧公眾號

波多野结衣之无限发射| 99re在线视频观看| 成人做爰视频网站| 成人爽a毛片免费啪啪红桃视频| 亚洲国产日韩综合久久精品| 欧美久久久久久| 一级特黄色大片| 亚洲福利一区| 日韩在线视频一区| 人妻熟女aⅴ一区二区三区汇编| yiren22亚洲综合| 一区二区视频免费在线观看| 精品久久久久久一区| 91精东传媒理伦片在线观看| 亚洲精一区二区三区| 色黄久久久久久| 中文字幕精品久久久| 国产精品亲子伦av一区二区三区| 亚洲综合视频网| 性欧美videosex高清少妇| av网站在线免费看| 日日摸夜夜添夜夜添精品视频| 九九热精品在线| 国产一区二区三区精品在线| 国产精品高潮呻吟久久久久| 欧美日韩色综合| 日本一本二本在线观看| 色呦呦网站在线观看| 国产精品久久久久久久久果冻传媒 | 成人动漫在线视频| 中国老头性行为xxxx| 性高湖久久久久久久久| 国内精品久久久久久影视8| 久久人妻无码aⅴ毛片a片app | 亚洲一区二区三区在线观看视频| 污污网站在线免费观看| 国产成人aaaa| 91日本视频在线| 国产九色91回来了| 丝袜亚洲精品中文字幕一区| 亚洲**2019国产| 久久亚洲精品大全| 你懂的视频一区二区| 日韩中文字幕精品视频| 国产日韩精品中文字无码| 亚洲午夜久久| 亚洲欧美成人一区二区在线电影| 亚洲视频在线播放免费| av成人app永久免费| 日韩亚洲欧美在线| 99热这里只有精品2| 日韩精品一区二区三区中文| 日韩一区二区三区av| 国产大片一区二区三区| 国产一区二区三区免费观看在线 | 亚洲无线码一区二区三区| 中文字幕在线乱| 高潮毛片在线观看| 一区二区三区国产精品| 国产传媒久久久| 超级碰碰不卡在线视频| 天天操天天干天天综合网| 免费 成 人 黄 色| 在线成人av观看| 91黄色激情网站| 亚洲国产成人va在线观看麻豆| 成人在线高清| 日韩一区二区影院| 久久久久亚洲AV成人网人人小说| 国产66精品| 精品视频久久久久久| av黄色在线免费观看| 四虎8848精品成人免费网站| 久久偷看各类女兵18女厕嘘嘘 | 日韩欧美在线视频日韩欧美在线视频| 国产欧美在线一区| 欧美天堂一区二区| 日韩一区和二区| 韩国三级hd两男一女| 日韩高清成人在线| 中文字幕久热精品视频在线| 日本高清一二三区| 亚洲三级色网| 国产精品av网站| av中文字幕免费在线观看| 成人av在线一区二区| 欧美日韩三区四区| 免费a级在线播放| 亚洲va韩国va欧美va精品| 50路60路老熟妇啪啪| 国产一区二区三区精品在线观看 | 中文字幕在线免费看线人| 免费看成人哺乳视频网站| www.国产一区| 五月天综合激情网| 国产在线国偷精品免费看| 国产女主播一区二区| 福利视频在线播放| 亚洲国产一区二区视频| 天天干天天综合| 波多野结衣在线一区二区| 一区二区三区在线播放欧美| www青青草原| 日韩精品一级中文字幕精品视频免费观看 | 亚洲欧美日韩国产成人| 小向美奈子av| 亚洲综合社区| 91免费在线观看网站| 青草久久伊人| 亚洲一区精品在线| 亚洲最大成人在线观看| 偷拍亚洲色图| 久久久久久亚洲精品不卡| 夜夜躁很很躁日日躁麻豆| 91丨porny丨中文| www.-级毛片线天内射视视| 久久精品女人天堂av免费观看| 日韩欧美国产一区在线观看| 美国黑人一级大黄| 国产麻豆综合| 国产精品久久久久久久久婷婷| 91九色在线porn| 欧美性猛交xxx| 香蕉视频污视频| 中文在线日韩| 国产精品香蕉国产| 国产在线91| 91久久一区二区| 美女又爽又黄视频毛茸茸| 在线成人av| 国产精品二区二区三区| 国产超级va在线视频| 欧美日韩国产免费| wwwww黄色| 日韩二区在线观看| 欧美午夜精品理论片a级大开眼界| xxxx成人| 精品欧美一区二区三区精品久久| 懂色av蜜臀av粉嫩av永久| 久久午夜影视| 欧美日韩精品久久| 欧美xx视频| 亚洲欧洲黄色网| 日本一本在线观看| 久久久精品tv| 噼里啪啦国语在线观看免费版高清版| 亚洲丝袜啪啪| 国产精品高潮呻吟久久av无限 | 国产日韩v精品一区二区| 干日本少妇首页| 久久93精品国产91久久综合| 日本aⅴ大伊香蕉精品视频| 麻豆影视在线| 91久久精品午夜一区二区| a天堂中文字幕| 日韩av二区在线播放| 亚洲一区二区精品在线观看| 色综合视频一区二区三区44| 久久午夜a级毛片| 国产夫妻性生活视频| 亚洲国产精品尤物yw在线观看| 第一页在线视频| 99国内精品| 欧美日韩精品中文字幕一区二区| 在线一区视频观看| 久久精品国产69国产精品亚洲| 91成年人视频| 一区二区三区不卡视频在线观看 | 99视频在线免费| 日韩精品免费一区二区三区| 成人乱色短篇合集| 国产丝袜精品丝袜| 精品小视频在线| 探花国产精品一区二区| 亚洲免费av在线| 国产综合内射日韩久| 免费亚洲婷婷| 亚洲一区二区三区加勒比| 最新国产精品精品视频| 欧美亚洲成人网| 91视频在线观看| 精品国产在天天线2019| 男人天堂2024| 亚洲色图.com| 久久久久麻豆v国产精华液好用吗 在线观看国产免费视频 | 国产亚洲a∨片在线观看| 一炮成瘾1v1高h| 亚洲国产视频直播| 精品一区二区三孕妇视频| 国产盗摄女厕一区二区三区| 看av免费毛片手机播放| 99国产**精品****| 国产精品久久国产精品| 欧美三区四区| 久久人人爽国产| 在线免费观看黄色网址| 亚洲成人精品视频在线观看| 亚洲综合成人av| 一区二区三区国产精品| 日韩毛片无码永久免费看| 国产成人小视频| 538任你躁在线精品免费| 极品中文字幕一区| 一区不卡视频| 伊人成综合网yiren22| 亚洲一区二区三区乱码aⅴ蜜桃女| 日韩伦理在线一区| 欧美日韩爱爱视频| 亚洲成a人v欧美综合天堂麻豆| 日韩高清免费在线| 国产成人精品白浆久久69| 欧美在线不卡一区| 4438国产精品一区二区| 亚洲午夜免费福利视频| 你懂得在线观看| 久久免费偷拍视频| 手机在线成人av| 国产成人福利片| 久久久精品视频国产| 免费成人在线观看视频| 久久综合久久色| 一本久久综合| 国产91沈先生在线播放| 久久精品一区二区不卡| 日韩在线三级| 欧美男同视频网| 精品一区久久久| 国产精品丝袜在线播放| 91免费看网站| 亚洲国产欧美在线观看| 91在线免费看网站| 欧美在线se| 国产日韩精品视频| 欧洲成人一区| 国产精品久久色| 日韩天堂在线| 国产成人在线一区| 网友自拍亚洲| 国产大片精品免费永久看nba| 人成在线免费网站| 91精品国产91久久久久久最新| 黄页在线观看免费| 欧美—级高清免费播放| 美女尤物在线视频| 午夜精品久久久久久久男人的天堂 | 夫妻免费无码v看片| 亚洲一区不卡| 日韩精品一区二区三区不卡 | 水蜜桃精品av一区二区| 伊人久久婷婷色综合98网| 欧美韩国日本在线观看| 在线免费一区| 中文字幕av亚洲精品一部二部| 91xxx视频| 国产主播精品| xxxx18hd亚洲hd捆绑| 一区二区动漫| 免费日韩视频在线观看| 人妖欧美一区二区| 亚洲综合欧美激情| 国内久久精品视频| 91精品人妻一区二区三区蜜桃2| 岛国av在线一区| 内射中出日韩无国产剧情| 国产亚洲欧美激情| 三级黄色在线观看| 一区二区三区精品久久久| 日本熟伦人妇xxxx| 欧洲国内综合视频| 91免费视频播放| 日韩精品一区二区三区在线观看| 神宫寺奈绪一区二区三区| 亚洲人成自拍网站| 免费a级人成a大片在线观看| 久久久久免费精品国产| 天天免费亚洲黑人免费| 成人春色激情网| 国产精品115| 日韩欧美一区二区三区四区五区 | 日本不卡在线观看视频| 麻豆国产欧美一区二区三区| 免费观看黄网站| 久久综合狠狠综合久久综合88| 欧美另类69xxxx| 亚洲国产毛片aaaaa无费看 | 台湾成人av| 欧美三级不卡| 任你操这里只有精品| 精品一区二区三区久久久| 亚洲自拍偷拍精品| 国产精品视频在线看| 黄色激情视频在线观看| 欧美日韩视频在线观看一区二区三区 | 九九视频精品免费| 亚洲激情 欧美| 成人免费在线视频| 国产嫩bbwbbw高潮| 日韩精品资源二区在线| 国产对白叫床清晰在线播放| 欧美另类在线观看| 美女色狠狠久久| 精品亚洲一区二区三区四区五区高| 日韩毛片视频| 日本三级免费网站| 狠狠色丁香久久婷婷综| 久操视频免费看| 亚洲国产精品久久艾草纯爱| 91禁在线观看| 亚洲网站视频福利| 第一av在线| 成人午夜小视频| 成人6969www免费视频| 国产午夜福利100集发布| 韩国成人在线视频| 性欧美一区二区| 精品国产户外野外| 亚洲第一精品网站| 久久久电影免费观看完整版| 欧美成人性网| 精品在线观看一区二区| 国产一区二区三区四区老人| 亚洲免费999| 国产婷婷色一区二区三区| www成人在线| 亚洲成人黄色网址| 波多一区二区| 成人av影视在线| 你懂的国产精品永久在线| 一区二区三区四区毛片| 国产精品网站在线播放| 糖心vlog精品一区二区| 国产午夜精品一区理论片飘花| 色偷偷偷在线视频播放| 久久国产一区| 久久狠狠婷婷| 精品人妻互换一区二区三区| 精品久久久久久久久久ntr影视| www.五月激情| 欧美二区在线播放| 97久久精品| 人妻无码久久一区二区三区免费 | 久久久久久久久久久久久久久| 亚洲成国产人片在线观看| 成人爽a毛片一区二区| 欧美国产日韩一区二区在线观看 | 中文字幕在线直播| 久久久久九九九| 蜜桃伊人久久| 中文天堂资源在线| 91亚洲国产成人久久精品网站| 国产一区福利在线| 亚洲涩涩在线观看| 国产午夜精品一区二区| 久久综合亚洲色hezyo国产| 日韩一区二区影院| 日本高清在线观看| 亚洲影影院av| 欧美日韩国产色综合一二三四| 永久看看免费大片| 亚洲成人7777| 日韩三级电影网| 国产精品91在线观看| 欧美日韩中字| 亚洲欧美日韩精品一区| 亚洲激情校园春色| 日日夜夜精品免费| 欧美在线视频导航| 色135综合网| 国产精品igao网网址不卡| 亚洲一二三四在线| 日韩毛片在线一区二区毛片| 国产精品久久久久福利| 久久精品一区二区不卡| 国产精品一区二区在线免费观看| 欧美日韩免费在线| 99免在线观看免费视频高清| 成人精品视频99在线观看免费| 狠狠综合久久| av网在线播放| 欧美一区二区三区四区久久| 超碰91在线观看| 手机在线观看国产精品| 国产福利视频一区二区三区| 亚洲精品午夜国产va久久成人| 最新的欧美黄色| 91精品国产自产精品男人的天堂| 亚洲精品乱码久久久久久自慰| 国产精品成人网| 午夜福利理论片在线观看| 国产有码一区二区| 亚洲一区二区三区免费在线观看| 日本不卡一区视频| 欧美精品一区二区精品网| 国产国产一区| 免费一级特黄特色毛片久久看| 国产精品久久综合| 色香蕉在线视频| 91探花福利精品国产自产在线 | 91国偷自产一区二区三区成为亚洲经典 | 国产视频91在线|