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

多線程異步【日志系統(tǒng)】,高效、強(qiáng)悍的實(shí)現(xiàn)方式:雙緩沖!

開發(fā)
在上一篇文章中,我主要從思路、概念的角度,來描述如何利用雙緩沖機(jī)制。這篇文章,我們就忠于書中原文,一起來學(xué)習(xí)一下作者的思考過程,并給出一些對性能起決定作用的關(guān)鍵代碼。

[[431670]]

別人的經(jīng)驗(yàn),我們的階梯!

大家好,我是道哥,今天我為大伙兒解說的技術(shù)知識點(diǎn)是:【在多線程環(huán)境下,如何實(shí)現(xiàn)一個高效的日志系統(tǒng)】。

在很久之前,曾經(jīng)寫過一篇文章《【最佳實(shí)踐】生產(chǎn)者和消費(fèi)者模式中的雙緩沖技術(shù)》,討論了:在一個產(chǎn)品級的日志系統(tǒng)中,如何利用雙緩沖機(jī)制來解決生產(chǎn)者-消費(fèi)者相關(guān)的問題。

前段時間,有位小伙伴私信給我,希望可以具體聊一下這個實(shí)現(xiàn)方案。

本來答應(yīng)在國慶期間完成的,但是我的拖延癥一犯再犯,一直拖到今天,終于把這個作業(yè)給補(bǔ)上了。

雙緩沖這個思路并不是我原創(chuàng)的,而是參考了大神陳碩老師的一本書《Linux 多線程服務(wù)端編程》。

從書名就可以看出,討論的是服務(wù)器端的相關(guān)編程內(nèi)容,而且是多線程場景下的,因此可以隱約看出,書中給出的參考代碼的質(zhì)量是很高的。

如果您的主力開發(fā)語言是 C++,強(qiáng)烈推薦您去研究下這本書。

很多 C++ 語言的細(xì)節(jié)問題,作者都給出了自己專業(yè)、嚴(yán)謹(jǐn)?shù)乃伎己徒鉀Q方案。

言歸正傳!

在上一篇文章中,我主要從思路、概念的角度,來描述如何利用雙緩沖機(jī)制。

這篇文章,我們就忠于書中原文,一起來學(xué)習(xí)一下作者的思考過程,并給出一些對性能起決定作用的關(guān)鍵代碼。

先來看一下書中的性能測試結(jié)果:

 

 

單片機(jī)中常用的環(huán)形緩沖區(qū)

一說到緩沖區(qū),相信各位小伙伴一定看過很多關(guān)于緩沖緩沖區(qū)的文章和代碼,在單片機(jī)中的使用率很高。

 

 

所謂的環(huán)形緩沖區(qū),就是一塊平整的內(nèi)存區(qū)域,讓它的尾部連接到首部即可。

  • 另一個類似的結(jié)構(gòu):環(huán)形隊(duì)列,本質(zhì)上都是一樣的。

維護(hù)環(huán)形緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu)中,有head和tail指針。

當(dāng)寫入的時候,把輸入寫入到tail指針的位置,寫完之后,遞增tail的指針值;

當(dāng)讀取的時候,從head指針的位置開始讀取,讀完之后,也遞增head的指針值。

這樣的操作方式,比較適合那種簡單的單輸入、單輸出場景。

只要處理好:當(dāng) head 和 tail 這兩個指針交匯的時候如何處理即可。

但是在x86的操作系統(tǒng)中,在多核 + 多線程的工作環(huán)境下,無論是從功能上、還是從性能上來考慮,這樣的環(huán)形緩沖區(qū)就滿足不了需求了。

還是拿日志系統(tǒng)來舉例:在一個應(yīng)用程序中,可能會有多個線程同時調(diào)用日志系統(tǒng)的寫入API接口函數(shù),這就需要保證線程安全。

  • 這樣的線程稱作 前臺/前端 線程。

日志數(shù)據(jù)存儲在內(nèi)存中之后,最終是要輸出的,比如:寫入到文件系統(tǒng)、通過網(wǎng)絡(luò)上傳到服務(wù)端、輸出到其他的監(jiān)控系統(tǒng)等等。

實(shí)現(xiàn)輸出操作的也是一個線程,假如需要寫入到文件系統(tǒng),那么在寫入期間,這個線程就需要一直持有緩沖區(qū)中的日志數(shù)據(jù)。

  • 這樣的線程稱作 后臺/后端 線程。

但是,文件系統(tǒng)的寫入速度是很慢的(畢竟要操作硬盤啊),如果這個時候又有前臺線程需要寫日志信息了,該如何處理?

總不能暴力的說:后臺線程正在把現(xiàn)有的日志數(shù)據(jù)存儲到硬盤上,已經(jīng)持有了內(nèi)存緩沖區(qū),前臺線程你是后來的,先等著!

多線程異步日志:雙緩沖機(jī)制

在這本書中,作者對這樣的日志系統(tǒng)規(guī)定了幾個關(guān)鍵的要求,都是與實(shí)際的業(yè)務(wù)需求相關(guān)的:

  1. 線程安全:多個線程可以并發(fā)寫日志,不造成競爭,兩個線程的日志信息不會交叉出現(xiàn);
  2. 吞吐量大;
  3. 日志消息有多種級別,格式可配置等等;

為了達(dá)到這個目的,作者提出了“雙緩沖”思路(Double Buffering)。

基本思路是:

準(zhǔn)備兩塊 buffer: A 和 B;

前端負(fù)責(zé)往 buffer A 填數(shù)據(jù)(日志信息);

后端負(fù)責(zé)把 buffer B 的數(shù)據(jù)寫入文件。

當(dāng) buffer A 寫滿之后,交換 A 和 B,讓后端將 buffer A 的數(shù)據(jù)寫入文件,而前端則往 buffer B 填入新的日志信息,如此反復(fù)。

其實(shí)還是蠻好理解的哈,我們還是來畫圖描述一下:

 

 

當(dāng) buffer A 寫滿之后,交換兩個緩沖區(qū):

 

 

雙緩沖機(jī)制為什么高效

使用兩個buffer緩沖區(qū)的好處是:

在大部分的時間中,前臺線程和后臺線程不會操作同一個緩沖區(qū),這也就意味著前臺線程的操作,不需要等待后臺線程緩慢的寫文件操作(因?yàn)椴恍枰i定臨界區(qū))。

還有一點(diǎn)就是:后臺線程把緩沖區(qū)中的日志信息,寫入到文件系統(tǒng)中的頻率,完全由自己的寫入策略來決定,避免了每條新日志信息都觸發(fā)(喚醒)后端日志線程。

例如:可以根據(jù)實(shí)際使用場景,定義一個刷新頻率,例如:3秒。

只要刷新時間到了,即使緩沖區(qū)中的日志信息很少,也要把它們存儲到文件系統(tǒng)中。

換言之,前端線程不是將一條條日志信息分別傳送給后端線程,而是將多條信息拼成一個大的 buffer 傳送給后端,相當(dāng)于是批量處理,減少了線程喚醒的頻率,降低開銷。

盡可能的降低 Lock 的時間

在剛才的描述中,有這么一句話:在[大部分的時間中],前臺線程和后臺線程不會操作同一個緩沖區(qū)。

也就是是說,在小部分時間內(nèi),它們還是有可能操作同一個緩沖區(qū)的。

那就是:當(dāng)前臺的寫入緩沖區(qū) buffer A 被寫滿了,需要與 buffer B 進(jìn)行交換的時候。

交換的操作,是由后臺線程來執(zhí)行的,具體流程是:

  1. 后臺線程被喚醒,此時 buffer B 緩沖區(qū)是空的,因?yàn)樵谏弦淮芜M(jìn)入睡眠之前,buffer B 中數(shù)據(jù)已經(jīng)被寫入到文件系統(tǒng)中了;
  2. 把 buffer A 與 buffer B 進(jìn)行交換;
  3. 把 buffer B 中的數(shù)據(jù)寫入到文件系統(tǒng);
  4. 開始休眠;

在第2個步驟中:交換緩沖區(qū),就是把兩個指針變量的值交換一下而已,利用C++語言中的swap操作,效率很高。

在執(zhí)行交換緩沖區(qū)的時候,可能會有前臺線程寫入日志,因此這個步驟需要在 Lock 的狀態(tài)下執(zhí)行。

可以看出:這個雙緩沖機(jī)制的前后臺日志系統(tǒng),需要鎖定的代碼僅僅是交換兩個緩沖區(qū)這個動作,Lock 的時間是極其短暫的!這就是它提高吞吐量的關(guān)鍵所在!

參考代碼

在示例代碼中,作者對雙緩沖機(jī)制進(jìn)行了擴(kuò)展,采用4個緩沖區(qū),這樣可以進(jìn)一步減少或避免前端線程的等待時間。

數(shù)據(jù)結(jié)構(gòu)如下:

 

 

這里的 nextBuffer_ 相當(dāng)有是currentBuffer_的“備胎”。

當(dāng)前臺線程發(fā)現(xiàn)currentBuffer_不可用時(空間已滿,或者正在被后臺線程操作),可以立刻寫入到這個"備胎"緩沖區(qū)中,從而降低了前臺線程的等待時間。

下面是前臺線程的寫入代碼:

 

 

 

前端線程在生成一條日志消息的時候,會調(diào)用append()函數(shù)。

在這個函數(shù)中,如果當(dāng)前緩沖區(qū)(currentBuffer_)剩余的空間足夠大,直接把消息消息拷貝(追加)進(jìn)去,這是最常見的情況。

如果當(dāng)前緩沖區(qū)的剩余空間,小于這次日志信息的寫入長度,就把它移動到 buffer_ 集合中(一個Vector),此時會發(fā)送喚醒信號給后端線程,然后把 nextBuffer_ 這個備胎 move 為 currentBuffer_。

  • move 是 C++ 中的操作,意思是移動,而不是拷貝/復(fù)制。

當(dāng)然了,如果前端的寫入速度太快,一下子就把兩塊緩沖區(qū)都用完了,那么只好分配一塊新的 buffer 作為當(dāng)前緩沖區(qū),這是極少發(fā)生的情況。

再來看看后端的代碼實(shí)現(xiàn),這里只貼出了最關(guān)鍵的臨界區(qū)內(nèi)的代碼,也就是前文所說的“小部分時間”的情況:

 

 

這段代碼中最重要的就是 swap 函數(shù),它把前后臺使用的緩沖區(qū)進(jìn)行了交換。

當(dāng)前后臺緩沖區(qū)交換之后,就離開了臨界區(qū),此時后臺線程就可以慢慢的往文件系統(tǒng)中寫入數(shù)據(jù)了。

另外,這段代碼中還有一個地方比較有意思,就是對備胎 nextBuffer_ 的操作:

當(dāng)前臺中使用的備胎 nextBuffer_ 已經(jīng)被消耗掉時,后臺線程及時地為它補(bǔ)充一個新的備胎。

可以繼續(xù)優(yōu)化的地方

在本章的最后部分,作者提出了一個更加嚴(yán)苛的情況:

異步日志系統(tǒng)中,使用了一個全局鎖,盡管臨界區(qū)很小,但是如果線程數(shù)目較多,鎖爭用也可能影響性能。

一種解決方法是像 Java 的 ConCurrentHashMap 那樣使用多個桶子(bucket),前端線程寫日志的時候根據(jù)線程id哈希到不同的 bucket 中,以減少競爭。

這種解決方案本質(zhì)上就是提供更多的緩沖區(qū),并且把不同的緩沖區(qū)分配給不同的線程(根據(jù)線程 id 的哈希值)。

那些哈希到相同緩沖區(qū)的線程,同樣是存在爭用的情況的,只不過爭用的概率被降低了很多。

本文轉(zhuǎn)載自微信公眾號「IOT物聯(lián)網(wǎng)小鎮(zhèn)」

 

責(zé)任編輯:姜華 來源: IOT物聯(lián)網(wǎng)小鎮(zhèn)
相關(guān)推薦

2018-04-02 14:29:18

Java多線程方式

2010-07-14 10:30:26

Perl多線程

2025-10-14 01:50:00

2010-03-17 17:30:26

JAVA多線程實(shí)現(xiàn)

2023-06-13 13:39:00

多線程異步編程

2024-05-10 07:44:23

C#進(jìn)程程序

2024-08-06 09:43:54

Java 8工具編程

2023-10-24 09:03:05

C++編程

2017-04-17 19:31:03

Android多線程

2025-02-24 09:30:00

日志系統(tǒng)系統(tǒng)開發(fā)

2023-03-24 15:44:52

Java多線程工具

2015-05-13 14:22:44

RedisNoSQL數(shù)據(jù)庫

2009-08-21 11:31:59

異步和多線程的區(qū)別

2025-03-04 08:40:28

2023-05-10 07:47:08

Python并發(fā)編程

2010-03-03 17:44:07

Python多線程

2019-10-29 19:49:48

Java線程安全

2023-02-20 15:29:46

異步編碼多線程

2024-03-28 12:51:00

Spring異步多線程

2024-11-15 11:00:00

C#多線程
點(diǎn)贊
收藏

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

亚洲欧美综合自拍| 波多野结衣乳巨码无在线| 最近中文字幕在线观看视频| 一道在线中文一区二区三区| 精品动漫一区二区| 欧美一区二区三区在线播放| 中文字字幕在线观看| 91一区二区三区四区| 在线观看网站黄不卡| 亚洲精品美女久久7777777| 亚洲特级黄色片| 欧美日韩国产探花| 日韩大片在线观看视频| 无码人妻精品一区二区三区66| 91在线免费看| 国产成人精品免费在线| 2019中文在线观看| av在线播放中文字幕| 精品国产鲁一鲁****| 伊人婷婷欧美激情| 久久精品成人一区二区三区蜜臀| 国产无遮挡又黄又爽又色视频| 99久久www免费| 日韩视频一区二区三区在线播放| 精品一区二区中文字幕| 在线看的av网站| 成人免费电影视频| 国产精品高潮粉嫩av| 在线免费日韩av| 台湾色综合娱乐中文网| 欧美日韩大陆一区二区| 黄色大片中文字幕| 亚洲成a人v欧美综合天堂麻豆| 成人免费视频网站在线观看| 欧美中文字幕视频| 91插插插插插插| 亚州精品视频| 欧美日韩美女一区二区| 青草青青在线视频| 国产女主播在线写真| 国产在线一区二区| 97在线观看免费| 少妇高潮一区二区三区喷水| 99久久香蕉| 欧美高清精品3d| 国产免费毛卡片| 欧美寡妇性猛交xxx免费| 91性感美女视频| 官网99热精品| 99热这里只有精品66| 日本欧美韩国一区三区| 97在线视频国产| 劲爆欧美第一页| 国产精品88久久久久久| 亚洲图中文字幕| 国产精品无码网站| 欧美aaaaa级| 91精品国产91久久综合桃花| 91人人澡人人爽人人精品| av日韩中文| 一区二区三区高清在线| 婷婷视频在线播放| 91caoporn在线| 国产亚洲欧美色| 欧美亚州在线观看| 日本免费不卡| 91丝袜高跟美女视频| 国产精品一区二区在线观看| 亚洲av色香蕉一区二区三区| 精久久久久久久久久久| 国产日本欧美一区二区三区| 亚洲精品无码久久久久| 丝袜美腿成人在线| 日本久久久久久久久| 天码人妻一区二区三区在线看| 亚洲美女毛片| 97在线视频免费观看| 一级免费在线观看| 在线视频日韩| 日韩av免费看| 美女又爽又黄免费视频| 免费在线亚洲| 国产成人精品视频| 久久精品国产亚洲AV无码麻豆 | 亚洲在线观看视频| 国产三级午夜理伦三级| 国产精品一级片在线观看| 亚洲最大激情中文字幕| 欧美在线视频精品| 免费观看在线综合| 国产精品wwww| 国产又大又黄的视频| 日韩不卡免费视频| 国产精品久久999| 97免费观看视频| 国产不卡视频在线播放| 国产尤物91| 国产中文字幕在线视频| 国产精品免费网站在线观看| 欧美高清性xxxxhdvideosex| 成人午夜影视| 亚洲男同1069视频| 亚洲一区精彩视频| 日本免费在线观看| 一级做a爱片久久| 国产午夜福利在线播放| 四虎4545www精品视频| 欧美久久一区二区| 国产精品igao网网址不卡| 成人av在线播放| 亚洲爱爱爱爱爱| 69xxx免费| 亚洲青色在线| 国产精品免费久久久久久| av片免费播放| 91年精品国产| 亚洲区成人777777精品| 日本在线高清| 欧美一区二区三区视频免费| 好吊日免费视频| 国产精品久久久久久久| 97在线视频免费| 国产精品国产精品国产专区| 成人综合婷婷国产精品久久免费| 欧美亚洲另类久久综合| 天天综合视频在线观看| 午夜激情综合网| 蜜桃福利午夜精品一区| 最近国产精品视频| 久久97精品久久久久久久不卡| 在线观看免费av片| 国产一区二区三区国产| 国产亚洲一区在线播放| 黄色av网站在线播放| 色综合中文字幕| 色播五月激情五月| 亚洲欧美tv| 久久久女人电视剧免费播放下载| 天天操天天摸天天干| 国产伦精品一区二区三区免费迷| 欧美极品jizzhd欧美| 天堂av中文在线| 在线成人高清不卡| 欧美 日韩 国产 成人 在线观看 | 日韩极品精品视频免费观看| 亚洲区一区二区三| 日韩av一级片| 欧美高清性xxxxhd| 免费成人在线电影| 亚洲精品一区二区精华| 永久av免费网站| 日本视频一区二区| 日本精品视频一区| 波多视频一区| 日韩精品高清视频| 亚洲AV无码成人精品区明星换面| 国产精品s色| 91视频免费在线| 日本在线免费中文字幕| 精品福利在线看| 日本女人性视频| 色999国产精品| 国产精品美女免费看| 亚洲第一免费视频| 亚洲免费电影在线| 密臀av一区二区三区| 啪啪亚洲精品| 日韩av第一页| 国产精品一区二区婷婷| 日本高清成人免费播放| 久久国产柳州莫菁门| 久久男女视频| 午夜精品区一区二区三| 欧美日韩在线精品一区二区三区激情综合 | 欧美亚洲黄色片| 一区二区在线免费播放| 不卡伊人av在线播放| 国产视频在线观看视频| 日韩一区欧美一区| 国产老头和老头xxxx×| 黄色精品网站| 精品不卡在线| 免费观看成人性生生活片| 国产性色av一区二区| 一级黄色片在线观看| 中文字幕中文乱码欧美一区二区 | 久热在线观看视频| 亚洲欧美视频在线| 国产精品久久777777换脸| 亚洲最新视频在线播放| av网页在线观看| 久久精品女人天堂| 手机成人av在线| 精品一区二区男人吃奶| 日本精品中文字幕| 日本网站在线免费观看视频| 精品美女在线播放| av黄色在线看| 中文字幕成人网| 欧美性猛交乱大交| 国产欧美大片| 亚洲日本无吗高清不卡| 亚洲日本视频在线| 欧美在线视频网站| 激情影院在线观看| 亚洲国产日韩欧美综合久久| 超碰在线97观看| 一区二区在线观看免费| 中文字幕一区二区三区人妻| 久久超碰97中文字幕| 人体内射精一区二区三区 | 亚洲高清在线播放| 一区二区日韩| 国产精品爽爽爽爽爽爽在线观看| 超黄网站在线观看| 中文字幕九色91在线| 国模私拍视频在线| 欧美性受xxxx| 久草国产精品视频| 亚洲天堂a在线| 亚洲调教欧美在线| 国产一区二区三区美女| 男人添女荫道口图片| 精品美女久久| 国内视频一区二区| 亚洲美女毛片| 成人性色av| 日本精品在线一区| 久久免费视频观看| 在线日本中文字幕| 亚洲激情小视频| 国产欧美日韩综合精品一区二区三区 | 精品毛片网大全| 2025国产精品自拍| 高清国产一区二区| 日本高清久久久| 免费看的黄色欧美网站| 成人免费a级片| 欧美h版在线| 欧美系列一区| youjizz亚洲| 亚洲自拍另类欧美丝袜| 欧美在线se| 国产精品爱久久久久久久| 2020国产在线视频| 中文字幕日韩在线视频| 天堂8在线视频| 欧美mv日韩mv| 国产成人免费看一级大黄| 欧美性精品220| 91九色丨porny丨肉丝| 亚洲精品免费一二三区| 男女全黄做爰文章| 久久精品在线免费观看| 少妇一级淫片免费放播放| 国产精品一级片| 91欧美一区二区三区| 久久99热这里只有精品| 国产理论在线播放| 丝袜脚交一区二区| 精品一卡二卡三卡| 久久久久久夜| 亚洲色欲综合一区二区三区| 亚洲综合99| av片中文字幕| 久久综合伊人| 91在线视频观看免费| 久久精选视频| 欧美日韩在线成人| 制服诱惑亚洲| 欧美国产1区2区| 国产第一页精品| 中文字幕一区二区在线观看| 午夜精品一区二区三级视频| 欧美国产97人人爽人人喊| 亚洲天堂精品一区| 中文字幕在线观看一区| 五月天av网站| 亚洲电影在线播放| www欧美在线| 精品视频一区 二区 三区| 影音先锋国产资源| 欧美精品丝袜久久久中文字幕| 91精品中文字幕| 日韩一区二区在线观看视频| 黄色片一区二区三区| 亚洲国产成人在线播放| 欧美日韩伦理片| 国产一区二区黄| 日韩毛片久久久| 色综合色综合久久综合频道88| www欧美xxxx| 国产成人jvid在线播放| 老司机精品视频网| 91久久国产综合久久91精品网站| 亚洲综合影院| 欧美日韩国产三区| 91av精品| 国产精品无码人妻一区二区在线| 久久成人亚洲| 8x8x成人免费视频| 成a人片亚洲日本久久| 欧美色图亚洲激情| 成人免费一区二区三区在线观看| 国产真实的和子乱拍在线观看| 色婷婷一区二区| a在线观看免费| 亚洲另类图片色| 久操视频在线| 欧美中文字幕在线观看| 国产精品igao视频网网址不卡日韩| 3d动漫啪啪精品一区二区免费| 妖精一区二区三区精品视频| 91社在线播放| 国产亚洲激情| www,av在线| 97偷自拍亚洲综合二区| 亚洲欧美日韩精品| 黄色网址免费在线观看| 欧美在线影院在线视频| 蜜桃在线一区| 色综合666| 99xxxx成人网| 中文字幕一二三区| 国产欧美一区二区精品久导航| 久久午夜无码鲁丝片午夜精品| 91福利视频网站| 人妻夜夜爽天天爽| 中文字幕日韩欧美精品在线观看| 第一av在线| 成人国产在线视频| 国产欧美日韩视频在线| 日本十八禁视频无遮挡| 精品亚洲成a人在线观看 | h1515四虎成人| 加勒比在线一区二区三区观看| 91tv精品福利国产在线观看| 青青草av网站| 2021久久国产精品不只是精品| 中文字幕av免费在线观看| 在线观看网站黄不卡| 亚洲三区在线播放| 欧美黑人国产人伦爽爽爽| 欧美一区=区三区| 五月天色一区| 快she精品国产999| 国产黄色三级网站| 亚洲影视在线播放| 99热这里是精品| 美日韩精品免费视频| 中文成人在线| 亚洲一区二区在线观| 日本aⅴ精品一区二区三区| 欧美成人三级伦在线观看| 亚洲一区二区视频| 国产高清在线观看视频| 精品国产欧美成人夜夜嗨| 国产第一亚洲| 亚洲春色在线视频| 天堂成人国产精品一区| 看全色黄大色黄女片18| 亚洲一级二级三级在线免费观看| 99国产在线播放| 久久综合色影院| 日本精品视频| 免费一级淫片aaa片毛片a级| 国产成人aaa| 久久久久成人片免费观看蜜芽| 精品日韩一区二区| 四虎影视成人| 国产一区二区高清不卡 | 欧美日韩激情四射| 国产精品一区二区在线播放| 欧美成人免费观看视频 | 国产又粗又猛又爽又黄的| 亚洲欧美日韩国产精品| 国产伦子伦对白在线播放观看| 懂色一区二区三区av片| 在线看片不卡| 国产精品熟妇一区二区三区四区 | 粉嫩av在线播放| 国产精品无av码在线观看| 小小影院久久| 91精品国产高清91久久久久久| 夜夜揉揉日日人人青青一国产精品| 亚洲国产精彩视频| 91av在线网站| 国产欧美日韩| 亚洲天堂av一区二区| 夜夜爽夜夜爽精品视频| 深夜福利免费在线观看| 国产精品大陆在线观看| 图片区亚洲欧美小说区| 无码人妻一区二区三区免费n鬼沢| 精品国产31久久久久久| h视频网站在线观看| 91成人免费看| 丝袜脚交一区二区| 国产对白videos麻豆高潮| 中文字幕在线精品|