精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

欧美男男激情freegay| 久久精品中文字幕电影| 97精品在线视频| 无码内射中文字幕岛国片| 午夜免费激情视频| 国产 日韩 欧美一区| 欧美精品自拍| 欧美日本国产视频| 日韩av一级大片| 国产黄色片免费看| 国内精品麻豆美女在线播放视频 | 欧美日韩欧美一区二区| 大片在线观看网站免费收看| 国产美女www爽爽爽| 国产乱人伦精品一区| 在线精品亚洲一区二区不卡| 欧美18视频| 久热这里只有精品6| 日韩理论电影院| 欧美亚洲一区三区| 日韩一区二区三区资源| 国产农村妇女毛片精品久久| 水蜜桃久久夜色精品一区| 欧美在线观看你懂的| 精品人妻大屁股白浆无码| 国产精品无码久久av| 色天天综合网| 亚洲精品自产拍| 国产偷人视频免费| 国产视频第一区| 肉丝袜脚交视频一区二区| 日韩精品小视频| 男女午夜激情视频| 性网站在线观看| 粉嫩嫩av羞羞动漫久久久| 欧美激情小视频| 久久人妻一区二区| 免费成人动漫| 国产精品免费视频一区| 91久久国产精品| 加勒比av在线播放| 秋霞影视一区二区三区| 色94色欧美sute亚洲线路二| 午夜精品短视频| 一区二区三区精彩视频| 欧美va天堂在线| 亚洲国产欧美在线成人app| 免费看的黄色大片| 国产尤物视频在线| 久久精品国产一区二区三| 精品国产一区二区三区在线观看| 亚洲三级在线观看视频| 欧美人与牲禽动交com| av电影天堂一区二区在线| 浅井舞香一区二区| 黑人と日本人の交わりビデオ| 伊人久久精品| 性感美女极品91精品| 欧美一级爱爱| 国产成人三级在线播放| 亚洲免费黄色| 色诱女教师一区二区三区| 日本亚洲一区二区三区| 涩涩在线视频| 中文字幕一区日韩精品欧美| 国产日韩二区| 亚洲中文一区二区三区| 激情久久久久久久| 中文字幕av一区二区| 国产乱淫av麻豆国产免费| 二区三区不卡| 在线亚洲精品福利网址导航| 天天操天天爱天天爽| 国产精品蜜臀| 国产精品久久久久9999吃药| 亚洲精品久久区二区三区蜜桃臀| www.com欧美| 奇米精品一区二区三区在线观看一| 欧美伦理91i| 一区二区三区久久久久| 99精品国产高清一区二区麻豆| 色综合咪咪久久| 国产树林野战在线播放| 国外av在线| 国产精品久久久久久久久免费桃花 | 久久综合九色九九| 日本高清www| 久久91导航| 欧美日韩国产高清一区二区三区 | 欧美精品一二三四区| 婷婷色综合网| 亚洲视频在线观看视频| 一本色道久久hezyo无码| 国产激情久久| 91国偷自产一区二区三区观看| 天天视频天天爽| 婷婷午夜社区一区| 午夜精品123| 爱情岛论坛成人| 日韩一区二区三区高清在线观看| 欧美日韩午夜影院| 粉嫩虎白女毛片人体| 日韩伦理精品| 欧美片在线播放| 少妇激情一区二区三区视频| 亚洲超碰在线观看| 亚洲欧美精品一区| 日韩人妻无码一区二区三区| 亚洲成人99| 久久激情视频久久| 99久在线精品99re8热| 在线日韩av| 久久久久久久久网站| 日韩国产亚洲欧美| 成人午夜视频免费看| 成人高清在线观看| 亚洲国产精品二区| 国产99久久久精品| 亚洲精品在线观看免费| 一二三四视频在线中文| 日韩欧美国产免费播放| 日韩精品一区二区三区久久| h片在线观看视频免费| 亚洲v日本v欧美v久久精品| 中文字幕在线观看第三页| 国产香蕉精品| 欧美激情视频一区二区三区不卡| 免费观看一级视频| 亚洲激情成人| 91九色国产在线| 1769在线观看| 一区2区3区在线看| 蜜桃传媒一区二区三区| 欧美黑人巨大xxxxx| 精品国产一区二区亚洲人成毛片| a级片在线观看视频| 亚洲人成网77777色在线播放| 亚洲无限av看| 亚洲人与黑人屁股眼交| 欧美日一区二区三区在线观看国产免| 国产精品高潮呻吟久久av野狼| 伊人精品在线视频| 国产毛片精品国产一区二区三区| av一区观看| 国产日产一区二区| 亚洲不卡一区二区三区| 中文字幕在线观看91| 欧美久久成人| 成人免费看片网站| 狠狠狠综合7777久夜色撩人| 欧美日韩精品在线视频| 天天色综合社区| 精品久久久久中文字幕小说| 欧美大片va欧美在线播放| aaa人片在线| av在线这里只有精品| 欧洲美女和动交zoz0z| 精品久久国产一区| 日韩精品免费观看| 日本视频在线观看免费| 久久久久久亚洲综合影院红桃| 在线免费观看成人网| www.超碰在线| 欧美日本乱大交xxxxx| 免费成人深夜蜜桃视频| 亚洲毛片播放| 看高清中日韩色视频| 成人av三级| 中文字幕日韩欧美| 国产精品伦一区二区三区| 亚洲精品你懂的| 精品无码av无码免费专区| 日本不卡一二三| 国产亚洲欧美日韩美女| 亚洲午夜精品久久久| 亚洲三级免费观看| 国产xxxxx视频| 成人羞羞网站| 日本精品视频在线观看| 亚洲精品国产精| 无码av中文一区二区三区桃花岛| 五月天开心婷婷| 国产在线日韩| 成人妇女免费播放久久久| 色综合888| 亚洲v精品v日韩v欧美v专区| 成人免费看aa片| 久99久精品视频免费观看| 日产国产精品精品a∨| 亚洲成人毛片| 最近2019年日本中文免费字幕 | 在线观看欧美日韩电影| 伊人青青综合网站| 日本三级一区二区| 国产无人区一区二区三区| 国产极品粉嫩福利姬萌白酱| 欧美亚洲在线日韩| 俄罗斯精品一区二区| 日韩美女在线看免费观看| 欧美成人午夜激情视频| 能在线看的av| 欧美xxxxxxxx| 欧美激情国产精品免费| 国产亚洲精品bt天堂精选| 乳色吐息在线观看| 欧美在线高清| 欧美一级爽aaaaa大片| 久久在线观看| 国产精品久久久久久久9999 | 色欧美自拍视频| 国产日韩欧美亚洲一区| 成人亚洲精品| 超碰91人人草人人干| 免费黄色在线视频网站| 日韩免费视频一区| 国产无遮挡aaa片爽爽| 亚洲国产精品成人综合| 性生活免费在线观看| 91偷拍一区二区三区精品| 久久久水蜜桃| 成人涩涩视频| 久久久91精品| 国产视频精选在线| 精品亚洲国产视频| 亚洲免费一级片| 精品人伦一区二区三区蜜桃网站 | 舔着乳尖日韩一区| 九九九免费视频| 亚洲欧美日韩国产一区二区三区| av永久免费观看| 狠狠色伊人亚洲综合成人| 久久天天东北熟女毛茸茸| 夜色77av精品影院| 狠狠久久综合婷婷不卡| 久久91导航| 热久久视久久精品18亚洲精品| 电影k8一区二区三区久久| 欧美超级乱淫片喷水| a天堂中文在线官网在线| 日韩精品资源二区在线| 99久久免费国产精精品| 欧美精品黑人性xxxx| 九九热国产视频| 欧美国产97人人爽人人喊| 欧美 日本 国产| 日产国产高清一区二区三区| 亚洲乱码中文字幕久久孕妇黑人| 99视频一区| 国产一线二线三线女| 国产日产精品一区二区三区四区的观看方式 | 欧美一区二区三区性视频| 日韩免费不卡视频| 亚洲综合视频在线观看| av资源吧首页| 欧美视频一二三| 黄色av网站免费观看| 1区2区3区精品视频| 国产a级黄色片| 不卡的av电影在线观看| 午夜免费福利视频在线观看| 亚洲精品精选| 国产成人无码精品久久久性色| 亚洲美女一区| 欧美日韩第二页| 免费一区二区视频| 玩弄中年熟妇正在播放| 销魂美女一区二区三区视频在线| 在线码字幕一区| 欧美日韩ab| 欧美国产激情视频| 奇米在线7777在线精品| 亚洲综合20p| 日本中文字幕不卡| 中文字幕永久有效| 国产精品综合av一区二区国产馆| 欧美日韩一区二区区| 不卡的av中国片| 男人的天堂官网| 亚洲老妇xxxxxx| 五月天综合激情网| 欧美色中文字幕| 亚洲黄色片视频| 亚洲深夜福利网站| av片在线观看网站| 色七七影院综合| 污污的网站在线看| 欧美在线一级视频| 欧美亚洲黄色| 精品蜜桃一区二区三区| 久久电影院7| 99热自拍偷拍| 精品亚洲成a人在线观看 | aaa国产精品| 日韩欧美亚洲在线| 精品99视频| www.激情小说.com| 成人黄色小视频在线观看| 国产美女永久免费无遮挡| 亚洲综合另类小说| 中文区中文字幕免费看| 亚洲高清福利视频| 亚洲第一免费视频| 国产亚洲成精品久久| 欧美亚洲系列| 成人黄色激情网| 久久av综合| 欧美尤物一区| 亚洲私人影院| 潘金莲激情呻吟欲求不满视频| www.欧美日韩国产在线| 欧美三级黄色大片| 亚洲欧洲综合另类| 精品人妻一区二区三区潮喷在线 | 午夜激情久久| 蜜臀av午夜一区二区三区| 成人一区二区三区视频| 老司机精品免费视频| 精品久久久久久电影| 亚洲av无码国产综合专区| 日韩中文在线中文网在线观看| 三级在线看中文字幕完整版| 懂色中文一区二区三区在线视频 | 日韩中文有码在线视频| 国产精品迅雷| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 日韩午夜小视频| av男人天堂av| 在线日韩av观看| 亚洲美女尤物影院| 波多野结衣久草一区| 亚洲精品一区二区妖精| 一区二区免费在线视频| 91高清一区| 亚洲久久中文字幕| 国产视频亚洲色图| 亚洲综合久久网| 日韩精品高清在线观看| 川上优av中文字幕一区二区| 国产精品日韩欧美一区二区| 九九免费精品视频在线观看| 亚洲中文字幕无码av永久| 久久久蜜桃一区二区人| 在线不卡一区二区三区| 日本一区二区三区久久久久久久久不| 男人晚上看的视频| 在线观看视频一区二区欧美日韩| 国产精品一区二区婷婷| 国产精品∨欧美精品v日韩精品| 超碰国产精品一区二页| 一区一区视频| 国产一区视频导航| 在线看黄色的网站| 亚洲成人高清在线| 中文字幕永久在线| 日韩一区二区三区免费观看| 最新日本在线观看| 国产精品美女久久久久av福利| 欧美三级午夜理伦三级中文幕| 亚洲色图校园春色| 国产九色在线| 成人日韩av在线| 黄色一区二区三区四区| 国产精品无码在线| 91福利区一区二区三区| 92国产在线视频| 91视频网页| 狠狠操综合网| 午夜免费看视频| 夜夜亚洲天天久久| 四虎免费在线观看| 久久久999精品免费| 亚洲1区在线观看| 99精品在线免费视频| 欧美国产乱子伦| 精品美女www爽爽爽视频| 91大神福利视频在线| 久久久久毛片免费观看| 免费看国产一级片| 久久精品一区八戒影视| 国产一区二区三区在线观看| 欧美丰满老妇厨房牲生活| 亚洲理论电影片| 岛国av免费在线| 五月天一区二区| jizz亚洲| 国产精品极品美女在线观看免费| 93在线视频精品免费观看| 韩国三级在线看| 在线视频中文字幕一区二区| 神马午夜伦理不卡| 欧美日韩免费观看一区| 中文亚洲欧美| 完美搭档在线观看| 欧洲国内综合视频| 污污的网站在线免费观看| 日本最新一区二区三区视频观看| 国产91精品一区二区麻豆亚洲| 久久影视中文字幕| 欧美精品激情blacked18| 成人三级视频|