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

鎖的四種狀態(tài)與鎖升級(jí)過(guò)程

開發(fā) 前端
文中講述了鎖的四種狀態(tài)以及鎖是如何一步一步升級(jí)的過(guò)程,

[[390633]]

一、前言

鎖的狀態(tài)總共有四種,級(jí)別由低到高依次為:無(wú)鎖、偏向鎖、輕量級(jí)鎖、重量級(jí)鎖,這四種鎖狀態(tài)分別代表什么,為什么會(huì)有鎖升級(jí)?其實(shí)在 JDK 1.6之前,synchronized 還是一個(gè)重量級(jí)鎖,是一個(gè)效率比較低下的鎖,但是在JDK 1.6后,Jvm為了提高鎖的獲取與釋放效率對(duì)(synchronized )進(jìn)行了優(yōu)化,引入了 偏向鎖 和 輕量級(jí)鎖 ,從此以后鎖的狀態(tài)就有了四種(無(wú)鎖、偏向鎖、輕量級(jí)鎖、重量級(jí)鎖),并且四種狀態(tài)會(huì)隨著競(jìng)爭(zhēng)的情況逐漸升級(jí),而且是不可逆的過(guò)程,即不可降級(jí),也就是說(shuō)只能進(jìn)行鎖升級(jí)(從低級(jí)別到高級(jí)別),不能鎖降級(jí)(高級(jí)別到低級(jí)別),意味著偏向鎖升級(jí)成輕量級(jí)鎖后不能降級(jí)成偏向鎖。這種鎖升級(jí)卻不能降級(jí)的策略,目的是為了提高獲得鎖和釋放鎖的效率。

二、鎖的四種狀態(tài)

在 synchronized 最初的實(shí)現(xiàn)方式是 “阻塞或喚醒一個(gè)Java線程需要操作系統(tǒng)切換CPU狀態(tài)來(lái)完成,這種狀態(tài)切換需要耗費(fèi)處理器時(shí)間,如果同步代碼塊中內(nèi)容過(guò)于簡(jiǎn)單,這種切換的時(shí)間可能比用戶代碼執(zhí)行的時(shí)間還長(zhǎng)”,這種方式就是 synchronized實(shí)現(xiàn)同步最初的方式,這也是當(dāng)初開發(fā)者詬病的地方,這也是在JDK6以前 synchronized效率低下的原因,JDK6中為了減少獲得鎖和釋放鎖帶來(lái)的性能消耗,引入了“偏向鎖”和“輕量級(jí)鎖”。

所以目前鎖狀態(tài)一種有四種,從級(jí)別由低到高依次是:無(wú)鎖、偏向鎖,輕量級(jí)鎖,重量級(jí)鎖,鎖狀態(tài)只能升級(jí),不能降級(jí)

如圖所示:

三、鎖狀態(tài)的思路以及特點(diǎn)

四、鎖對(duì)比

五、Synchronized鎖

synchronized 用的鎖是存在Java對(duì)象頭里的,那么什么是對(duì)象頭呢?

5.1 Java 對(duì)象頭

我們以 Hotspot 虛擬機(jī)為例,Hopspot 對(duì)象頭主要包括兩部分?jǐn)?shù)據(jù):MarkWord(標(biāo)記字段)和KlassPointer(類型指針)

Mark Word:默認(rèn)存儲(chǔ)對(duì)象的HashCode,分代年齡和鎖標(biāo)志位信息。這些信息都是與對(duì)象自身定義無(wú)關(guān)的數(shù)據(jù),所以Mark Word被設(shè)計(jì)成一個(gè)非固定的數(shù)據(jù)結(jié)構(gòu)以便在極小的空間內(nèi)存存儲(chǔ)盡量多的數(shù)據(jù)。它會(huì)根據(jù)對(duì)象的狀態(tài)復(fù)用自己的存儲(chǔ)空間,也就是說(shuō)在運(yùn)行期間Mark Word里存儲(chǔ)的數(shù)據(jù)會(huì)隨著鎖標(biāo)志位的變化而變化。

Klass Point:對(duì)象指向它的類元數(shù)據(jù)的指針,虛擬機(jī)通過(guò)這個(gè)指針來(lái)確定這個(gè)對(duì)象是哪個(gè)類的實(shí)例。

在上面中我們知道了, synchronized 用的鎖是存在Java對(duì)象頭里的,那么具體是存在對(duì)象頭哪里呢?答案是:存在鎖對(duì)象的對(duì)象頭的Mark Word中,那么MarkWord在對(duì)象頭中到底長(zhǎng)什么樣,它到底存儲(chǔ)了什么呢?

在64位的虛擬機(jī)中:


在32位的虛擬機(jī)中:

 

下面我們以 32位虛擬機(jī)為例,來(lái)看一下其 Mark Word 的字節(jié)具體是如何分配的

無(wú)鎖:對(duì)象頭開辟 25bit 的空間用來(lái)存儲(chǔ)對(duì)象的 hashcode ,4bit 用于存放對(duì)象分代年齡,1bit 用來(lái)存放是否偏向鎖的標(biāo)識(shí)位,2bit 用來(lái)存放鎖標(biāo)識(shí)位為01

偏向鎖: 在偏向鎖中劃分更細(xì),還是開辟 25bit 的空間,其中23bit 用來(lái)存放線程ID,2bit 用來(lái)存放 Epoch,4bit 存放對(duì)象分代年齡,1bit 存放是否偏向鎖標(biāo)識(shí), 0表示無(wú)鎖,1表示偏向鎖,鎖的標(biāo)識(shí)位還是01

輕量級(jí)鎖:在輕量級(jí)鎖中直接開辟 30bit 的空間存放指向棧中鎖記錄的指針,2bit 存放鎖的標(biāo)志位,其標(biāo)志位為00

重量級(jí)鎖: 在重量級(jí)鎖中和輕量級(jí)鎖一樣,30bit 的空間用來(lái)存放指向重量級(jí)鎖的指針,2bit 存放鎖的標(biāo)識(shí)位,為11

GC標(biāo)記: 開辟30bit 的內(nèi)存空間卻沒(méi)有占用,2bit 空間存放鎖標(biāo)志位為11。

其中無(wú)鎖和偏向鎖的鎖標(biāo)志位都是01,只是在前面的1bit區(qū)分了這是無(wú)鎖狀態(tài)還是偏向鎖狀態(tài)

關(guān)于內(nèi)存的分配,我們可以在git中openJDK中 markOop.hpp 可以看出:

  1. public
  2.   // Constants 
  3.   enum { age_bits                 = 4, 
  4.          lock_bits                = 2, 
  5.          biased_lock_bits         = 1, 
  6.          max_hash_bits            = BitsPerWord - age_bits - lock_bits - biased_lock_bits, 
  7.          hash_bits                = max_hash_bits > 31 ? 31 : max_hash_bits, 
  8.          cms_bits                 = LP64_ONLY(1) NOT_LP64(0), 
  9.          epoch_bits               = 2 
  10.   }; 
  • age_bits: 就是我們說(shuō)的分代回收的標(biāo)識(shí),占用4字節(jié)
  • lock_bits: 是鎖的標(biāo)志位,占用2個(gè)字節(jié)
  • biasedlockbits: 是是否偏向鎖的標(biāo)識(shí),占用1個(gè)字節(jié)
  • maxhashbits: 是針對(duì)無(wú)鎖計(jì)算的hashcode 占用字節(jié)數(shù)量,如果是32位虛擬機(jī),就是 32 - 4 - 2 -1 = 25 byte,如果是64 位虛擬機(jī),64 - 4 - 2 - 1 = 57 byte,但是會(huì)有 25 字節(jié)未使用,所以64位的 hashcode 占用 31 byte
  • hash_bits: 是針對(duì) 64 位虛擬機(jī)來(lái)說(shuō),如果最大字節(jié)數(shù)大于 31,則取31,否則取真實(shí)的字節(jié)數(shù)
  • cms_bits: 不是64位虛擬機(jī)就占用 0 byte,是64位就占用 1byte
  • epoch_bits: 就是 epoch 所占用的字節(jié)大小,2字節(jié)。

5.2 Monitor

Monitor 可以理解為一個(gè)同步工具或一種同步機(jī)制,通常被描述為一個(gè)對(duì)象。每一個(gè) Java 對(duì)象就有一把看不見的鎖,稱為內(nèi)部鎖或者 Monitor 鎖。

Monitor 是線程私有的數(shù)據(jù)結(jié)構(gòu),每一個(gè)線程都有一個(gè)可用 monitor record 列表,同時(shí)還有一個(gè)全局的可用列表。每一個(gè)被鎖住的對(duì)象都會(huì)和一個(gè) monitor 關(guān)聯(lián),同時(shí) monitor 中有一個(gè) Owner 字段存放擁有該鎖的線程的唯一標(biāo)識(shí),表示該鎖被這個(gè)線程占用。

Synchronized是通過(guò)對(duì)象內(nèi)部的一個(gè)叫做監(jiān)視器鎖(monitor)來(lái)實(shí)現(xiàn)的,監(jiān)視器鎖本質(zhì)又是依賴于底層的操作系統(tǒng)的 Mutex Lock(互斥鎖)來(lái)實(shí)現(xiàn)的。而操作系統(tǒng)實(shí)現(xiàn)線程之間的切換需要從用戶態(tài)轉(zhuǎn)換到核心態(tài),這個(gè)成本非常高,狀態(tài)之間的轉(zhuǎn)換需要相對(duì)比較長(zhǎng)的時(shí)間,這就是為什么 Synchronized 效率低的原因。因此,這種依賴于操作系統(tǒng) Mutex Lock 所實(shí)現(xiàn)的鎖我們稱之為重量級(jí)鎖。

隨著鎖的競(jìng)爭(zhēng),鎖可以從偏向鎖升級(jí)到輕量級(jí)鎖,再升級(jí)的重量級(jí)鎖(但是鎖的升級(jí)是單向的,也就是說(shuō)只能從低到高升級(jí),不會(huì)出現(xiàn)鎖的降級(jí))。JDK 1.6中默認(rèn)是開啟偏向鎖和輕量級(jí)鎖的,我們也可以通過(guò)-XX:-UseBiasedLocking=false來(lái)禁用偏向鎖。

六、鎖的分類

6.2 無(wú)鎖

無(wú)鎖是指沒(méi)有對(duì)資源進(jìn)行鎖定,所有的線程都能訪問(wèn)并修改同一個(gè)資源,但同時(shí)只有一個(gè)線程能修改成功。

無(wú)鎖的特點(diǎn)是修改操作會(huì)在循環(huán)內(nèi)進(jìn)行,線程會(huì)不斷的嘗試修改共享資源。如果沒(méi)有沖突就修改成功并退出,否則就會(huì)繼續(xù)循環(huán)嘗試。如果有多個(gè)線程修改同一個(gè)值,必定會(huì)有一個(gè)線程能修改成功,而其他修改失敗的線程會(huì)不斷重試直到修改成功。

6.3 偏向鎖

初次執(zhí)行到synchronized代碼塊的時(shí)候,鎖對(duì)象變成偏向鎖(通過(guò)CAS修改對(duì)象頭里的鎖標(biāo)志位),字面意思是“偏向于第一個(gè)獲得它的線程”的鎖。執(zhí)行完同步代碼塊后,線程并不會(huì)主動(dòng)釋放偏向鎖。當(dāng)?shù)诙蔚竭_(dá)同步代碼塊時(shí),線程會(huì)判斷此時(shí)持有鎖的線程是否就是自己(持有鎖的線程ID也在對(duì)象頭里),如果是則正常往下執(zhí)行。由于之前沒(méi)有釋放鎖,這里也就不需要重新加鎖。如果自始至終使用鎖的線程只有一個(gè),很明顯偏向鎖幾乎沒(méi)有額外開銷,性能極高。

偏向鎖是指當(dāng)一段同步代碼一直被同一個(gè)線程所訪問(wèn)時(shí),即不存在多個(gè)線程的競(jìng)爭(zhēng)時(shí),那么該線程在后續(xù)訪問(wèn)時(shí)便會(huì)自動(dòng)獲得鎖,從而降低獲取鎖帶來(lái)的消耗,即提高性能。

當(dāng)一個(gè)線程訪問(wèn)同步代碼塊并獲取鎖時(shí),會(huì)在 Mark Word 里存儲(chǔ)鎖偏向的線程 ID。在線程進(jìn)入和退出同步塊時(shí)不再通過(guò) CAS 操作來(lái)加鎖和解鎖,而是檢測(cè) Mark Word 里是否存儲(chǔ)著指向當(dāng)前線程的偏向鎖。輕量級(jí)鎖的獲取及釋放依賴多次 CAS 原子指令,而偏向鎖只需要在置換 ThreadID 的時(shí)候依賴一次 CAS 原子指令即可。

偏向鎖只有遇到其他線程嘗試競(jìng)爭(zhēng)偏向鎖時(shí),持有偏向鎖的線程才會(huì)釋放鎖,線程是不會(huì)主動(dòng)釋放偏向鎖的。

關(guān)于偏向鎖的撤銷,需要等待全局安全點(diǎn),即在某個(gè)時(shí)間點(diǎn)上沒(méi)有字節(jié)碼正在執(zhí)行時(shí),它會(huì)先暫停擁有偏向鎖的線程,然后判斷鎖對(duì)象是否處于被鎖定狀態(tài)。如果線程不處于活動(dòng)狀態(tài),則將對(duì)象頭設(shè)置成無(wú)鎖狀態(tài),并撤銷偏向鎖,恢復(fù)到無(wú)鎖(標(biāo)志位為01)或輕量級(jí)鎖(標(biāo)志位為00)的狀態(tài)。

6.4 輕量級(jí)鎖(自旋鎖)

 

輕量級(jí)鎖是指當(dāng)鎖是偏向鎖的時(shí)候,卻被另外的線程所訪問(wèn),此時(shí)偏向鎖就會(huì)升級(jí)為輕量級(jí)鎖,其他線程會(huì)通過(guò)自旋(關(guān)于自旋的介紹見文末)的形式嘗試獲取鎖,線程不會(huì)阻塞,從而提高性能。

輕量級(jí)鎖的獲取主要由兩種情況:① 當(dāng)關(guān)閉偏向鎖功能時(shí);② 由于多個(gè)線程競(jìng)爭(zhēng)偏向鎖導(dǎo)致偏向鎖升級(jí)為輕量級(jí)鎖。

一旦有第二個(gè)線程加入鎖競(jìng)爭(zhēng),偏向鎖就升級(jí)為輕量級(jí)鎖(自旋鎖)。這里要明確一下什么是鎖競(jìng)爭(zhēng):如果多個(gè)線程輪流獲取一個(gè)鎖,但是每次獲取鎖的時(shí)候都很順利,沒(méi)有發(fā)生阻塞,那么就不存在鎖競(jìng)爭(zhēng)。只有當(dāng)某線程嘗試獲取鎖的時(shí)候,發(fā)現(xiàn)該鎖已經(jīng)被占用,只能等待其釋放,這才發(fā)生了鎖競(jìng)爭(zhēng)。

在輕量級(jí)鎖狀態(tài)下繼續(xù)鎖競(jìng)爭(zhēng),沒(méi)有搶到鎖的線程將自旋,即不停地循環(huán)判斷鎖是否能夠被成功獲取。獲取鎖的操作,其實(shí)就是通過(guò)CAS修改對(duì)象頭里的鎖標(biāo)志位。先比較當(dāng)前鎖標(biāo)志位是否為“釋放”,如果是則將其設(shè)置為“鎖定”,比較并設(shè)置是原子性發(fā)生的。這就算搶到鎖了,然后線程將當(dāng)前鎖的持有者信息修改為自己。

長(zhǎng)時(shí)間的自旋操作是非常消耗資源的,一個(gè)線程持有鎖,其他線程就只能在原地空耗CPU,執(zhí)行不了任何有效的任務(wù),這種現(xiàn)象叫做忙等(busy-waiting)。如果多個(gè)線程用一個(gè)鎖,但是沒(méi)有發(fā)生鎖競(jìng)爭(zhēng),或者發(fā)生了很輕微的鎖競(jìng)爭(zhēng),那么synchronized就用輕量級(jí)鎖,允許短時(shí)間的忙等現(xiàn)象。這是一種折衷的想法,短時(shí)間的忙等,換取線程在用戶態(tài)和內(nèi)核態(tài)之間切換的開銷。

6.4 重量級(jí)鎖

重量級(jí)鎖顯然,此忙等是有限度的(有個(gè)計(jì)數(shù)器記錄自旋次數(shù),默認(rèn)允許循環(huán)10次,可以通過(guò)虛擬機(jī)參數(shù)更改)。如果鎖競(jìng)爭(zhēng)情況嚴(yán)重,某個(gè)達(dá)到最大自旋次數(shù)的線程,會(huì)將輕量級(jí)鎖升級(jí)為重量級(jí)鎖(依然是CAS修改鎖標(biāo)志位,但不修改持有鎖的線程ID)。當(dāng)后續(xù)線程嘗試獲取鎖時(shí),發(fā)現(xiàn)被占用的鎖是重量級(jí)鎖,則直接將自己掛起(而不是忙等),等待將來(lái)被喚醒。

重量級(jí)鎖是指當(dāng)有一個(gè)線程獲取鎖之后,其余所有等待獲取該鎖的線程都會(huì)處于阻塞狀態(tài)。

簡(jiǎn)言之,就是所有的控制權(quán)都交給了操作系統(tǒng),由操作系統(tǒng)來(lái)負(fù)責(zé)線程間的調(diào)度和線程的狀態(tài)變更。而這樣會(huì)出現(xiàn)頻繁地對(duì)線程運(yùn)行狀態(tài)的切換,線程的掛起和喚醒,從而消耗大量的系統(tǒng)資

五、總結(jié)

文中講述了鎖的四種狀態(tài)以及鎖是如何一步一步升級(jí)的過(guò)程,

 

責(zé)任編輯:姜華 來(lái)源: 牧小農(nóng)
相關(guān)推薦

2021-07-06 13:32:55

JVM

2021-07-01 19:30:23

JVM內(nèi)部鎖線程

2019-10-08 14:40:53

Java線程

2009-04-27 10:33:16

ASP.NET視圖狀態(tài)

2022-03-08 08:44:13

偏向鎖Java內(nèi)置鎖

2023-11-08 08:18:19

鎖升級(jí)多線程

2024-06-27 08:55:41

2022-03-15 11:01:39

KubernetesLinux平滑升級(jí)

2024-03-18 12:21:28

Java輕量級(jí)鎖重量級(jí)鎖

2024-08-13 14:08:25

2024-04-19 08:05:26

鎖升級(jí)Java虛擬機(jī)

2011-04-21 10:13:27

升級(jí)Ubuntu

2019-10-17 08:51:00

Java悲觀鎖Monitor

2024-10-10 09:40:29

2011-11-24 16:34:39

Java

2024-05-17 09:33:22

樂(lè)觀鎖CASversion

2019-10-24 07:42:28

Java引用GC

2012-09-11 09:55:26

編程HTML5編程能力

2011-03-16 09:05:53

NATiptables

2017-07-06 15:40:19

DevOps核心能力
點(diǎn)贊
收藏

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

日本精品久久久久影院| 精品一区二区亚洲| 97免费视频观看| 色婷婷av一区二区三区之红樱桃| 国产农村妇女精品一区二区| 国产亚洲精品一区二555| 一本一道久久a久久综合蜜桃| 伊人在我在线看导航| av不卡在线播放| 国产精品视频网| 久久免费在线观看视频| 国产一区日韩| 日韩欧美视频在线| 冲田杏梨av在线| 888av在线视频| 国产日韩欧美电影| 国产精品12| 亚洲专区在线播放| 男人的天堂成人在线| 欧美理论片在线观看| 中文字幕 自拍| 亚洲精品观看| 欧美日韩亚州综合| 鲁一鲁一鲁一鲁一澡| 成人在线app| 欧美激情一二三区| 另类欧美小说| 人妻少妇精品无码专区| 久久激情五月激情| 日韩美女免费线视频| 免费在线观看黄视频| 91免费精品| 揄拍成人国产精品视频| 中国极品少妇videossexhd| 国内精品视频| 欧美日韩中文字幕一区二区| 美女av免费在线观看| 黑人另类精品××××性爽| 亚洲色图视频网站| 中文网丁香综合网| 9色在线观看| 国产网红主播福利一区二区| 久久国产日韩欧美| 天天色天天操天天射| 国产一区二区美女| 91精品久久久久久久久不口人| 亚洲无码精品一区二区三区| 久久亚洲精选| 国产精品久久999| 亚洲精品中文字幕乱码三区91| 亚洲麻豆av| 97视频免费在线看| 日本一本高清视频| 99在线精品视频在线观看| 欧美激情久久久久久| 免费毛片在线播放免费| 欧美在线日韩| 色综合天天综合网国产成人网| 日韩三级在线观看视频| 国产精品久久久久9999赢消| www.精品av.com| 成人在线观看小视频| 亚洲一本二本| 欧美激情a∨在线视频播放| 精品深夜av无码一区二区老年| 1024日韩| 国产91精品久久久| 亚洲午夜无码久久久久| 蜜臀久久99精品久久久画质超高清| 国产欧美精品一区二区| 国产精品久久久久久无人区| 国产一区二区三区免费看| 粉嫩av一区二区三区免费观看| 少妇精品高潮欲妇又嫩中文字幕| 91美女蜜桃在线| 日本精品一区| 黄色网页在线免费看| 一区二区三区久久久| 蜜桃传媒一区二区三区| 欧美大片免费| 91精品国产aⅴ一区二区| 手机在线免费毛片| 久久久久久毛片免费看| 亚洲视频国产视频| 黄色录像一级片| 影音先锋日韩资源| 国产精彩精品视频| 国产婷婷一区二区三区久久| 成人短视频下载| 日韩和欧美的一区二区| 成人ww免费完整版在线观看| 午夜一区二区三区在线观看| 三级a在线观看| 欧洲大片精品免费永久看nba| 亚洲精品videossex少妇| av网在线播放| 欧美色综合网| 国产精品入口免费视| 国产成人精品亚洲精品色欲| 91麻豆swag| 一级黄色录像免费看| 国产v日韩v欧美v| 欧美日韩激情一区二区三区| 91视频啊啊啊| 在线精品视频在线观看高清| 欧美一二三视频| 国产又黄又猛又爽| 91论坛在线播放| 特色特色大片在线| 欧洲一级精品| 亚洲电影免费观看高清完整版在线观看 | 午夜性色一区二区三区免费视频| 91av中文字幕| wwwav网站| 国产精品美女久久久久久| 大陆av在线播放| 亚洲日韩中文字幕一区| 亚洲欧美999| 国产乡下妇女做爰| 国产一区二区三区综合| 婷婷四月色综合| 亚洲永久av| 亚洲福利视频网站| 好吊色视频在线观看| 美女视频黄免费的久久| 欧美精品在线一区| 末成年女av片一区二区下载| 欧美xxxx老人做受| 小泽玛利亚一区二区免费| 久久久水蜜桃av免费网站| 成人欧美一区二区| 91精品久久| 欧美视频一区二区在线观看| 超碰男人的天堂| 激情久久久久久| 98国产高清一区| 直接在线观看的三级网址| 欧美日本视频在线| 免费黄色在线网址 | 手机av在线网站| 日韩电影一区| 国产精品久久久999| 欧美色视频免费| 懂色aⅴ精品一区二区三区蜜月| 逼特逼视频在线观看| 欧美三级网页| 国产精品v欧美精品∨日韩| 日韩激情美女| 欧美大片国产精品| 精品人妻在线播放| caoporn国产精品| 亚洲美免无码中文字幕在线 | 亚欧洲精品在线视频免费观看| 芒果视频成人app| 亚洲欧美日韩一区二区三区在线| 精品国产午夜福利| 国产日韩欧美一区二区三区乱码| 日本老熟妇毛茸茸| 日韩一区二区在线免费| 国产精品揄拍500视频| 国产区视频在线播放| 欧美日韩国产大片| 在线看的片片片免费| 国产精品99久久久久久久vr| 伊人久久在线观看| 国产suv精品一区| 日本一欧美一欧美一亚洲视频| 九色网友自拍视频手机在线| 在线观看成人免费视频| 日本不卡一二区| 国产sm精品调教视频网站| 热久久最新地址| 日本午夜精品久久久| 国产精品高潮呻吟久久av黑人| av免费观看一区二区| 91精品国产综合久久久久久久| 欧美日韩在线观看免费| 91麻豆精东视频| 色18美女社区| 亚洲三级观看| 亚洲一区三区在线观看| 91亚洲无吗| 国产第一区电影| av在线官网| 精品国产自在久精品国产| 国产成人综合欧美精品久久| 国产精品久久夜| 久久久老熟女一区二区三区91| 视频一区二区三区入口| 97超碰在线视| 国产精品日韩精品中文字幕| 91亚洲精华国产精华| 国产在线美女| 精品国偷自产在线视频| 隣の若妻さん波多野结衣| 欧美最猛性xxxxx直播| 玖玖爱免费视频| 国产日韩成人精品| 日本人添下边视频免费| 美女网站在线免费欧美精品| 国精产品一区一区三区视频| 亚洲女同中文字幕| 欧美另类高清视频在线| 粉嫩精品导航导航| 成人妇女淫片aaaa视频| 日韩深夜视频| 欧美黑人视频一区| 日韩毛片久久久| 亚洲欧美日韩天堂一区二区| www.蜜桃av.com| 欧美日韩国产一区二区三区地区| 日韩欧美性视频| 伊人夜夜躁av伊人久久| 东京热无码av男人的天堂| 99精品视频在线观看| 中文字幕一二三| 久久成人精品无人区| 午夜dv内射一区二区| 国产日韩欧美一区| www.好吊操| 欧美激情1区| 中文字幕一区二区中文字幕| 欧美日韩激情| 欧美一区1区三区3区公司| 国产人妖ts一区二区| 91久久精品在线| 欧美日韩va| 国产精品久久久久久久久免费看 | avtt在线播放| 亚洲男人的天堂网站| 神马久久久久久久久久| 精品久久免费看| www.国产.com| 欧美一卡二卡三卡| 99久久国产免费| 欧美精品在线视频| 97国产精品久久久| 欧美另类高清zo欧美| 亚洲最大成人在线视频| 欧美日韩国产综合一区二区三区| 国产精品第6页| 在线看不卡av| 日本三级一区二区三区| 欧美中文字幕一区二区三区亚洲| 五月婷婷激情视频| 色狠狠综合天天综合综合| 麻豆成人免费视频| 日韩欧美国产一区二区| 日本a级c片免费看三区| 91久久精品一区二区二区| 国产成人a v| 欧美日韩视频第一区| 在线免费av网| 日韩一区二区中文字幕| 亚洲国产精品视频在线| 亚洲成人黄色网址| 手机在线观看免费av| 精品亚洲男同gayvideo网站| 蜜桃视频在线播放| 深夜福利日韩在线看| 成人短视频在线| 亚洲 日韩 国产第一| 六月婷婷综合| 成人免费福利在线| 97久久亚洲| 麻豆av一区二区三区久久| 久久不卡国产精品一区二区 | 国产精品国码视频| 精品视频在线观看一区| 久久xxxx精品视频| 日本肉体xxxx裸体xxx免费| 国产一区二区网址| 丰满少妇一区二区三区| 欧美高清在线一区| 欧洲猛交xxxx乱大交3| 欧美日韩国产精品一区二区不卡中文| 青青青国产在线| 欧美嫩在线观看| 欧美一级免费片| 中文亚洲视频在线| 天堂成人av| 日本午夜人人精品| 免费精品一区二区三区在线观看| 激情视频在线观看一区二区三区| 波多野结衣在线播放一区| 特级毛片在线免费观看| 99国产精品久久久久久久成人热| 久久久国产欧美| 福利一区在线观看| 性欧美精品男男| 亚洲一区二区三区四区的| 在线观看日本网站| 日韩一级大片在线| 搞黄视频免费在线观看| 欧美夫妻性视频| av成人在线看| 国产在线一区二区三区欧美| 91亚洲国产| 男人揉女人奶房视频60分| 国产一区999| 免费观看a级片| 性感美女极品91精品| 亚洲一级黄色大片| 日韩经典中文字幕在线观看| 老司机在线永久免费观看| 欧美一区第一页| 一区二区三区视频免费视频观看网站 | 久久久精品高清| 2欧美一区二区三区在线观看视频| 极品魔鬼身材女神啪啪精品| 在线观看成人免费视频| 亚洲人视频在线观看| 九九精品视频在线| 999色成人| 一本一本a久久| 老司机精品视频网站| 精品一区二区视频在线观看| 亚洲理论在线观看| 伊人成人在线观看| 亚洲欧美日韩综合| 国产在线美女| 国产美女精品久久久| 黄色成人在线网站| 亚洲妇熟xx妇色黄蜜桃| 国产精品污污网站在线观看| 欧美男人亚洲天堂| 日韩风俗一区 二区| 黄色视屏在线免费观看| 国产精品一区二| 国内精品久久久久久久97牛牛 | 欧美孕妇性xxxⅹ精品hd| 欧美国产视频日韩| 日本在线成人| 国产乱人伦精品一区二区三区| 激情六月婷婷综合| 免费精品在线视频| 欧美剧在线免费观看网站| 在线视频1区2区| 成人国产精品久久久久久亚洲| 成人影视亚洲图片在线| 亚洲成人av免费看| 国产精品免费视频观看| 艳妇乳肉豪妇荡乳av| 精品久久久91| 日韩精品视频中文字幕| 国产911在线观看| 成人亚洲一区二区一| 国产精品a成v人在线播放| 亚洲第一黄色网| 免费看男女www网站入口在线| 久久精品一区二区三区不卡免费视频| 99热精品在线| av女人的天堂| 欧美视频在线播放| 免费av毛片在线看| 91精品国产99久久久久久红楼| 亚洲小说欧美另类婷婷| 亚洲国产精品无码久久久久高潮| 福利一区福利二区微拍刺激| 欧美一区二区视频| 国产精品影院在线观看| 欧美福利在线| 国产chinese中国hdxxxx| 欧美小视频在线| 2021av在线| 99re在线视频观看| 国产日韩精品视频一区二区三区| 久久成人激情视频| 3d动漫精品啪啪1区2区免费| 国产精品69xx| 欧美一区二区在线视频观看| 久久爱www久久做| 国产亚洲自拍av| 亚洲人成在线观看| 九九99久久精品在免费线bt| 男女啪啪免费视频网站| 国产亚洲精品超碰| 国产高中女学生第一次| 91av中文字幕| 亚洲a一区二区三区| 老熟妇精品一区二区三区| 欧美在线free| 国内小视频在线看| 亚洲成人自拍| av在线播放成人| 一级全黄少妇性色生活片| 久久久亚洲网站| 成人综合一区| 亚洲一级Av无码毛片久久精品| 91国产免费观看| 国产桃色电影在线播放| 日韩一区二区三区资源| 国产.欧美.日韩| 一区精品在线观看| 4p变态网欧美系列| 久久精品青草| 日韩av在线看免费观看| 日韩精品影音先锋| 一区二区三区日本视频| 免费av网址在线|