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

成人免费网视频| 亚洲无限av看| 999一区二区三区| 男人天堂手机在线观看| 久久在线精品| zzijzzij亚洲日本成熟少妇| 国产精品91av| 日韩av首页| 一区二区高清免费观看影视大全| 精品免费视频123区| 最近中文字幕在线观看视频| 欧美精品一级| 在线视频国产日韩| 一区二区三区四区影院| 视频二区不卡| 亚洲国产精品人人做人人爽| 色吧亚洲视频| 国产1区在线观看| 午夜激情电影在线播放| 国产人久久人人人人爽| 成人日韩在线电影| 中文字幕在线观看视频网站| 久久久国产精品| 在线视频欧美精品| 妺妺窝人体色www看人体| 女人天堂在线| 国产一区二区三区四区五区入口| 91大神福利视频在线| 日本免费色视频| 亚洲天堂电影| 亚洲国产综合视频在线观看| 亚洲欧洲一区二区| 中文字幕在线播放不卡| 亚洲激情社区| 久久999免费视频| www.xx日本| 极品美女一区二区三区| 亚洲国产精品视频在线观看| 黄色永久免费网站| 欧美特黄aaaaaaaa大片| 亚洲国产婷婷综合在线精品| 18视频在线观看娇喘| 伊人成人在线观看| 蜜乳av另类精品一区二区| 欧美激情奇米色| 亚洲综合网在线| 久久影院一区| 日韩亚洲一区二区| 免费91在线观看| 欧美一区电影| 视频在线观看99| 欧美成人久久久免费播放| 国内精品久久久久久久久电影网| 精品中文字幕久久久久久| 亚洲熟女乱综合一区二区三区| 日韩精品成人| 欧美大片顶级少妇| 伊人久久久久久久久| 日韩欧美中文字幕在线视频| 91精品国产综合久久精品| 日本高清久久久| 白嫩亚洲一区二区三区| 这里只有精品免费| www.日本三级| 国产蜜臀av在线播放| 亚洲最大成人综合| 欧美久久在线观看| 国产毛片在线| 欧美国产日产图区| 亚洲人一区二区| 求av网址在线观看| 亚洲日穴在线视频| 国产传媒久久久| 日本午夜大片a在线观看| 久久久不卡影院| 日韩.欧美.亚洲| 美女羞羞视频在线观看| 亚洲精品免费播放| 男女日批视频在线观看| 久久影院午夜精品| 色中色一区二区| 国内自拍视频网| 精品国产亚洲一区二区在线观看| 日韩精品中文字幕在线不卡尤物| 久久久久亚洲AV成人无码国产| 亚洲精品国产动漫| 日韩一区二区三区在线播放| 国产亚洲欧美精品久久久www| 91久久黄色| 国产精品久久久久不卡| 国产草草影院ccyycom| 99天天综合性| 91在线无精精品一区二区| 中国一级特黄毛片| 日韩av午夜在线观看| 91久久久久久久| 凸凹人妻人人澡人人添| 日本一区二区三区四区| 警花观音坐莲激情销魂小说| 免费在线小视频| 欧美丰满美乳xxx高潮www| 在线精品视频播放| 欧美精品一区二区久久| 欧美大片大片在线播放| 亚洲第一网站在线观看| 国产一区二区看久久| 免费成人在线观看av| 欧美高清视频| 色成人在线视频| 91人人澡人人爽| 欧美r级电影| 日本高清视频精品| 亚洲va天堂va欧美ⅴa在线| 久久久久久久综合色一本| 久久久久久久香蕉| 免费观看亚洲| 日韩欧美在线观看视频| 成人综合久久网| 欧美美乳视频| 国内精品久久久久久中文字幕| 中文天堂在线资源| 91一区二区在线| 奇米777四色影视在线看| 成人做爰免费视频免费看| 亚洲精品一区二区三区福利| 亚洲综合图片一区| 日韩av不卡在线观看| 好吊色欧美一区二区三区| av黄在线观看| 欧美日韩国产天堂| 国精产品一区二区三区| 亚洲三级网页| 午夜精品久久久久久久久久久久 | 免费成人在线网站| 精品国产乱码一区二区三区四区 | 久久久久亚洲av片无码v| av成人在线网站| 一本色道久久88精品综合| 国产乱码久久久久久| 国产精品资源在线看| av一本久道久久波多野结衣| 日本不卡不卡| 欧美日韩国产乱码电影| av电影网站在线观看| 久久国产88| 美女三级99| 免费看男女www网站入口在线 | 午夜国产精品视频免费体验区| 国产精品中文字幕久久久| av在线电影院| 欧美三级欧美一级| 亚洲色图 激情小说| 视频一区二区国产| 手机成人在线| 日韩美女在线| 欧美成人aa大片| 国产精品视频一区二区三| 精品一二三四区| 免费看污污视频| 综合激情网...| 亚洲精选一区二区| 亚洲色图100p| 麻豆一区二区三| 国产视频在线观看一区| 91破解版在线观看| 日韩精品在线看| 国产免费a视频| 国产精品不卡在线| 色欲无码人妻久久精品| 激情欧美一区| 欧美动漫一区二区| 欧美性爽视频| 精品国产乱码久久久久久老虎| 久久精品人妻一区二区三区| 99riav久久精品riav| 欧美黄色一级片视频| 成人午夜av| 99视频免费观看| 最近高清中文在线字幕在线观看1| 亚洲人免费视频| 国产91av视频| 久久精品一区八戒影视| 日韩一区二区三区不卡视频| 亚洲电影在线一区二区三区| 国产精品果冻传媒潘| 中国色在线日|韩| 日韩在线中文字幕| 日本国产在线观看| 欧美在线视频全部完| 99久久99久久精品国产| 国产福利一区二区| 视频一区二区在线观看| a一区二区三区亚洲| 欧美国产日韩一区二区在线观看| 五月激情婷婷综合| 欧美男生操女生| 日韩高清精品免费观看| 国产人伦精品一区二区| 成人一区二区三区仙踪林| 久久精品天堂| 日韩视频 中文字幕| 你懂的视频欧美| 91久色国产| av在线日韩| 久久琪琪电影院| 一级毛片视频在线| 日韩成人在线电影网| 国产免费不卡av| 在线视频中文字幕一区二区| 精品无码人妻一区二区三区品| 日本一区二区三区四区在线视频| 亚洲天堂美女视频| 国内外成人在线视频| av动漫免费看| 亚洲国产第一| www.-级毛片线天内射视视| 在线一级成人| 精品欧美一区二区三区久久久| 91麻豆精品一二三区在线| 26uuu日韩精品一区二区| 国产日产一区二区| 这里只有视频精品| 日本韩国精品一区二区| 欧美日韩精品在线| 欧美在线视频第一页| 中文字幕精品一区二区精品绿巨人 | 欧美日韩国产经典色站一区二区三区| 久久露脸国语精品国产91| 亚洲人成在线播放网站岛国| 大胸美女被爆操| 国产午夜精品一区二区三区四区| 完美搭档在线观看| 成人一二三区视频| 91av免费观看| 国产一区二区在线观看免费| 中文字幕永久视频| 久久av在线| 99免费视频观看| 最新日韩在线| 你懂的av在线| 亚洲美女一区| 欧美日韩成人免费视频| 亚洲黄色三级| 亚洲美免无码中文字幕在线| 亚洲精一区二区三区| av在线播放天堂| 亚洲经典在线| 男人添女人下部高潮视频在观看| 黑丝一区二区| 国产av麻豆mag剧集| 亚洲三级毛片| 国产精品沙发午睡系列| 亚洲国产二区| 久久久久久久激情| 日韩国产欧美一区二区三区| 日本888xxxx| 精品午夜一区二区三区在线观看| 亚洲一二三av| 国产电影一区在线| 无码人妻精品一区二区三区99不卡| 国产成人在线免费| 日韩无码精品一区二区| 99riav一区二区三区| 欧美性猛交xxxx乱| 国产精品久久久久永久免费观看 | 91日本视频在线| 中文字幕亚洲在线观看| 国产伦理一区二区三区| 丝袜连裤袜欧美激情日韩| 欧美精品二区三区四区免费看视频| 国产一区毛片| 久久精品国产精品亚洲精品色| 国产精品香蕉| 国产精品久久久久久五月尺| 国模私拍国内精品国内av| 成人国内精品久久久久一区| 精品国产鲁一鲁****| 成人91视频| 九色成人国产蝌蚪91| 亚洲精品日韩成人| 欧美黄在线观看| 久久综合色视频| 美女尤物国产一区| 日本美女视频网站| 国产欧美视频一区二区三区| 丝袜 亚洲 另类 欧美 重口| 性久久久久久久久久久久| 人妻丰满熟妇av无码区| 欧美精品第1页| 天天射天天色天天干| 主播福利视频一区| av福利导福航大全在线| 国产精品激情av在线播放| 日韩一区免费| 四虎影视永久免费在线观看一区二区三区| 小说区亚洲自拍另类图片专区| 国产美女在线一区| 蜜桃视频一区二区三区在线观看| 粗大的内捧猛烈进出视频| 久久久综合视频| 久久精品一区二区三| 91黄色小视频| 理论片中文字幕| 日韩中文字幕精品| 中国字幕a在线看韩国电影| 91麻豆精品秘密入口| 成人精品中文字幕| 日日摸日日碰夜夜爽无码| 韩日精品视频一区| 性欧美精品男男| 亚洲成国产人片在线观看| 中文字幕在线网站| 精品亚洲永久免费精品| 欧美videossex另类| 国产日韩中文在线| 成人影院网站ww555久久精品| 久久福利电影| 韩日精品在线| 日韩不卡的av| 丁香激情综合五月| 欧日韩不卡视频| 色视频欧美一区二区三区| 成人久久久精品国产乱码一区二区| 在线丨暗呦小u女国产精品| 自拍视频在线看| 精品高清视频| 亚洲黄色影片| 国产人妻精品午夜福利免费| 综合自拍亚洲综合图不卡区| 最近中文字幕在线观看| 亚洲欧洲第一视频| 性孕妇free特大另类| 国产精品 日韩| 国产综合婷婷| 韩国av中国字幕| 一区二区三区免费| www.黄色片| 日韩精品丝袜在线| 成年人视频免费在线播放| 99久久国产免费免费| 91精品国偷自产在线电影| 97超碰成人在线| 中文字幕日本不卡| 国产精品视频第一页| 日韩亚洲精品电影| 成人综合日日夜夜| 日本xxx免费| 国产激情视频一区二区在线观看| 日韩女优一区二区| 日韩欧美一区二区视频| av文字幕在线观看| 5g影院天天爽成人免费下载| 欧美va亚洲va日韩∨a综合色| 国模大尺度视频| 性欧美疯狂xxxxbbbb| 五月婷婷在线观看视频| 欧美在线观看网站| 国产欧美一区二区三区精品观看| 国产精品涩涩涩视频网站| 国产欧美一区在线| 怡红院男人天堂| 久久躁狠狠躁夜夜爽| 午夜伦理福利在线| 欧美另类一区| 蜜桃av噜噜一区二区三区小说| 日本二区三区视频| 日韩一级大片在线观看| 国产第一页在线| 蜜桃日韩视频| 免费在线欧美视频| 国产黄色片在线免费观看| 亚洲第一精品夜夜躁人人躁| 成人av三级| 色香蕉在线观看| 成人a区在线观看| 国产又粗又猛又黄视频| 精品国产一区久久久| 7m精品国产导航在线| 国产成人精品视频免费看| 欧美高清一级片在线观看| 99在线精品视频免费观看20| 97国产在线视频| 欧美日中文字幕| 三上悠亚 电影| 一本久道中文字幕精品亚洲嫩| 男人影院在线观看| 国产综合精品一区二区三区| 日本v片在线高清不卡在线观看| 日本青青草视频| 一区二区中文字幕| 综合激情网...| 色乱码一区二区三区在线| 亚洲精品高清在线观看| 久久久久久久久亚洲精品| 成人有码在线视频| 性娇小13――14欧美| 亚洲成人生活片| 国产一区二区日韩| av日韩在线播放| 亚洲小视频网站|