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

淺談CLR線程池的缺點及解決方法

開發 后端
關于CLR線程池的基本概念我們還不太清楚,這里筆者再來補充一些必要的信息,有助于我們在程序中選擇合適的使用方式。這里將談到獨立線程池與IO線程池。

獨立線程池

上次我們在CLR線程池的作用與原理淺析一文中討論到,在一個.NET應用程序中會有一個CLR線程池,可以使用ThreadPool類中的靜態方法來使用這個線程池。我們只要使用QueueUserWorkItem方法向線程池中添加任務,線程池就會負責在合適的時候執行它們。我們還討論了CLR線程池的一些高級特性,例如對線程的最大和最小數量作限制,對線程創建時間作限制以避免突發的大量任務消耗太多資源等等。

那么.NET提供的線程池又有什么缺點呢?有些朋友說,一個重要的缺點就是功能太簡單,例如只有一個隊列,沒法做到對多個隊列作輪詢,無法取消任務,無法設定任務優先級,無法限制任務執行速度等等。不過其實這些簡單的功能,倒都可以通過在CLR線程池上增加一層(或者說,通過封裝CLR線程池)來實現。例如,您可以讓放入CLR線程池中的任務,在執行時從幾個自定義任務隊列中挑選一個運行,這樣便達到了對多個隊列作輪詢的效果。因此,在我看來,CLR線程池的主要缺點并不在此。

我認為,CLR線程池的主要問題在于“大一統”,也就是說,整個進程內部幾乎所有的任務都會依賴這個線程池。如前篇文章所說的那樣,如Timer和WaitForSingleObject,還有委托的異步調用,.NET框架中的許多功能都依賴這個線程池。這個做法是合適的,但是由于開發人員對于統一的線程池無法做到精確控制,因此在一些特別的需要就無法滿足了。舉個最常見例子:控制運算能力。什么是運算能力?那么還是從線程講起吧。

我們在一個程序中創建一個線程,安排給它一個任務,便交由操作系統來調度執行。操作系統會管理系統中所有的線程,并且使用一定的方式進行調度。什么是“調度”?調度便是控制線程的狀態:執行,等待等等。我們都知道,從理論上來說有多少個處理單元(如2 * 2 CPU的機器便有4個處理單元),就表示操作系統可以同時做幾件事情。但是線程的數量會遠遠超過處理單元的數量,因此操作系統為了保證每個線程都被執行,就必須等一個線程在某個處理器上執行到某個情況的時候,“換”一個新的線程來執行,這便是所謂的“上下文切換(context switch)”。至于造成上下文切換的原因也有多種,可能是某個線程的邏輯決定的,如遇上鎖,或主動進入休眠狀態(調用Thread.Sleep方法),但更有可能是操作系統發現這個線程“超時”了。在操作系統中會定義一個“時間片(timeslice)”2,當發現一個線程執行時間超過這個時間,便會把它撤下,換上另外一個。這樣看起來,多個線程——也就是多個任務在同時運行了。值得一提的是,對于Windows操作系統來說,它的調度單元是線程,這和線程究竟屬于哪個進程并沒有關系。

舉個例子,如果系統中只有兩個進程,進程A有5個線程,而進程B有10個線程。在排除其他因素的情況下,進程B占有運算單元的時間便是進程A的兩倍。當然,實際情況自然不會那么簡單。例如不同進程會有不同的優先級,線程相對于自己所屬的進程還會有個優先級;如果一個線程在許久沒有執行的時候,或者這個線程剛從“鎖”的等待中恢復,操作系統還會對這個線程的優先級作臨時的提升——這一切都是牽涉到程序的運行狀態,性能等情況的因素,有機會我們在做展開。

現在您意識到線程數量意味著什么了沒?沒錯,就是我們剛才提到的“運算能力”。很多時候我們可以簡單的認為,在同樣的環境下,一個任務使用的線程數量越多,它所獲得的運算能力就比另一個線程數量較少的任務要來得多。運算能力自然就涉及到任務執行的快慢。您可以設想一下,有一個生產任務,和一個消費任務,它們使用一個隊列做臨時存儲。在理想情況下,生產和消費的速度應該保持相同,這樣可以帶來最好的吞吐量。如果生產任務執行較快,則隊列中便會產生堆積,反之消費任務就會不斷等待,吞吐量也會下降。因此,在實現的時候,我們往往會為生產任務和消費任務分別指派獨立的線程池,并且通過增加或減少線程池內線程數量來條件運算能力,使生產和消費的步調達到平衡。

使用獨立的線程池來控制運算能力的做法很常見,一個典型的案例便是SEDA架構:整個架構由多個Stage連接而成,每個Stage均由一個隊列和一個獨立的線程池組成,調節器會根據隊列中任務的數量來調節線程池內的線程數量,最終使應用程序獲得優異的并發能力。

在Windows操作系統中,Server 2003及之前版本的API也只提供了進程內部單一的線程池,不過在Vista及Server 2008的API中,除了改進線程池的性能之外,還提供了在同一進程內創建多個線程池的接口。很可惜,.NET直到如今的4.0版本,依舊沒有提供構建獨立線程池的功能。構造一個優秀的線程池是一件相當困難的事情,幸運的是,如果我們需要這方面的功能,可以借助著名的SmartThreadPool,經過那么多年的考驗,相信它已經足夠成熟了。如果需要,我們還可以對它做一定修改——畢竟在不同情況下,我們對線程池的要求也不完全相同。

IO線程池

IO線程池便是為異步IO服務的線程池。

訪問IO最簡單的方式(如讀取一個文件)便是阻塞的,代碼會等待IO操作成功(或失敗)之后才繼續執行下去,一切都是順序的。但是,阻塞式IO有很多缺點,例如讓UI停止響應,造成上下文切換,CPU中的緩存也可能被清除甚至內存被交換到磁盤中去,這些都是明顯影響性能的做法。此外,每個IO都占用一個線程,容易導致系統中線程數量很多,最終限制了應用程序的伸縮性。因此,我們會使用“異步IO”這種做法。

在使用異步IO時,訪問IO的線程不會被阻塞,邏輯將會繼續下去。操作系統會負責把結果通過某種方法通知我們,一般說來,這種方式是“回調函數”。異步IO在執行過程中是不占用應用程序的線程的,因此我們可以用少量的線程發起大量的IO,所以應用程序的響應能力也可以有所提高。此外,同時發起大量IO操作在某些時候會有額外的性能優勢,例如磁盤和網絡可以同時工作而不互相沖突,磁盤還可以根據磁頭的位置來訪問就近的數據,而不是根據請求的順序進行數據讀取,這樣可以有效減少磁頭的移動距離。

Windows操作系統中有多種異步IO方式,但是性能最高,伸縮性最好的方式莫過于傳說中的“IO完成端口(I/O Completion Port,IOCP)”了,這也是.NET中封裝的唯一異步IO方式。大約一年半前,老趙寫過一篇文章《正確使用異步操作》,其中除了描述計算密集型和IO密集型操作的區別和效果之外,還簡單地講述了IOCP與CLR交互的方式,摘錄如下:

當我們希望進行一個異步的IO-Bound Operation時,CLR會(通過Windows API)發出一個IRP(I/O Request Packet)。當設備準備妥當,就會找出一個它“最想處理”的IRP(例如一個讀取離當前磁頭最近的數據的請求)并進行處理,處理完畢后設備將會(通過Windows)交還一個表示工作完成的IRP。CLR會為每個進程創建一個IOCP(I/O Completion Port)并和Windows操作系統一起維護。IOCP中一旦被放入表示完成的IRP之后(通過內部的ThreadPool.BindHandle完成),CLR就會盡快分配一個可用的線程用于繼續接下去的任務。
不過事實上,使用Windows API編寫IOCP非常復雜。而在.NET中,由于需要迎合標準的APM(異步編程模型),在使用方便的同時也放棄一定的控制能力。因此,在一些真正需要高吞吐量的時候(如編寫服務器),不少開發人員還是會選擇直接使用Native Code編寫相關代碼。不過在絕大部分的情況下,.NET中利用IOCP的異步IO操作已經足以獲得非常優秀的性能了。使用APM方式在.NET中使用異步IO非常簡單,如下:

  1. static void Main(string[] args)  
  2. {  
  3.     WebRequest request = HttpWebRequest.Create("http://www.cnblogs.com");  
  4.     request.BeginGetResponse(HandleAsyncCallback, request);  
  5. }  
  6.  
  7. static void HandleAsyncCallback(IAsyncResult ar)  
  8. {  
  9.     WebRequest request = (WebRequest)ar.AsyncState;  
  10.     WebResponse response = request.EndGetResponse(ar);  
  11.     // more operations...  
  12. }

BeginGetResponse 將發起一個利用IOCP的異步IO操作,并在結束時調用HandleAsyncCallback回調函數。那么,這個回調函數是由哪里的線程執行的呢?沒錯,就是傳說中“IO線程池”的線程。.NET在一個進程中準備了兩個線程池,除了上篇文章中所提到的CLR線程池之外,它還為異步IO操作的回調準備了一個IO線程池。IO線程池的特性與CLR線程池類似,也會動態地創建和銷毀線程,并且也擁有最大值和最小值(可以參考上一篇文章列舉出的API)。

只可惜,IO線程池也僅僅是那“一整個”線程池,CLR線程池的缺點IO線程池也一應俱全。例如,在使用異步IO方式讀取了一段文本之后,下一步操作往往是對其進行分析,這就進入了計算密集型操作了。但對于計算密集型操作來說,如果使用整個IO線程池來執行,我們無法有效的控制某項任務的運算能力。因此在有些時候,我們在回調函數內部會把計算任務再次交還給獨立的線程池。這么做從理論上看會增大線程調度的開銷,不過實際情況還得看具體的評測數據。如果它真的成為影響性能的關鍵因素之一,我們就可能需要使用Native Code來調用IOCP相關API,將回調任務直接交給獨立的線程池去執行了。

我們也可以使用代碼來操作IO線程池,例如下面這個接口便是向IO線程池遞交一個任務:

  1. public static class ThreadPool  
  2. {  
  3.     public static bool UnsafeQueueNativeOverlapped(NativeOverlapped* overlapped);  

NativeOverlapped包含了一個IOCompletionCallback回調函數及一個緩沖對象,可以通過Overlapped對象創建

Overlapped會包含一個被固定的空間,這里“固定”的含義表示不會因為GC而導致地址改變,甚至不會被置換到硬盤上的Swap空間去。這么做的目的是迎合IOCP的要求,但是很明顯它也會降低程序性能。因此,我們在實際編程中幾乎不會使用這個方法3。

注1:如果沒有加以說明,我們這里談論的對象默認為XP及以上版本的Window操作系統。

注2:timeslice又被稱為quantum,不同操作系統中定義的這個值并不相同。在Windows客戶端操作系統(XP,Vista)中時間片默認為2個clock interval,在服務器操作系統(2003,2008)中默認為12個clock interval(在主流系統上,1個clock interval大約10到15毫秒)。服務器操作系統使用較長的時間片,是因為一般服務器上運行的程序比客戶端要少很多,且更注重性能和吞吐量,而客戶端系統更注重響應能力——而且,如果您真需要的話,時間片的長度也是可以調整的。

注3:不過,如果程序中多次復用單個NativeOverlapped對象的話,這個方法的性能會略微好于QueueUserWorkItem,據說WCF中便使用了這種方式——微軟內部總有那么些技巧是我們不知如何使用的,例如老趙記得之前查看ASP.NET AJAX源代碼的時候,在MSDN中不小心發現一個接口描述大意是“預留方法,請不要在外部使用”。對此,我們又能有什么辦法呢?

【編輯推薦】

  1. CLR線程池的作用與原理淺析
  2. 一個非常簡單和短小的線程池
  3. Java學習:線程池的簡單構建
  4. 創建Java中的線程池
  5. 線程池與工作隊列
責任編輯:彭凡 來源: cnblogs
相關推薦

2009-07-03 18:14:27

Servlet線程安全

2009-06-17 15:33:50

java heap s

2009-07-22 09:39:18

CLR線程池

2010-07-22 14:05:33

krb5-telnet

2009-07-09 17:14:11

Incompatibl

2009-07-01 18:14:36

JSP亂碼

2023-10-26 08:16:20

C++線程

2009-07-10 14:32:06

JVM崩潰

2011-05-06 17:25:58

硒鼓

2022-04-02 20:27:30

ETS操作系統鴻蒙

2010-08-12 09:30:08

Flex內存泄露

2012-05-15 02:18:31

Java線程池

2010-06-21 09:54:50

Linux Aplay

2011-04-29 13:22:48

ThinkPad筆記本故障

2019-10-11 19:45:28

SparkSQLHiveHadoop

2011-12-02 14:00:21

JavaOOM

2016-09-23 20:46:53

2011-06-16 10:27:55

.NET內存泄漏

2009-07-15 16:14:36

iBATIS優缺點

2010-12-27 10:48:10

VirtualboxFreedos
點贊
收藏

51CTO技術棧公眾號

亚洲天堂一区在线观看| 超碰97在线资源站| 视频在线这里都是精品| 成人深夜视频在线观看| 日本sm极度另类视频| 亚洲aaa视频| 成人av资源网址| 欧美在线|欧美| www.日本少妇| 亚洲精品传媒| 97久久超碰国产精品| 成人黄色大片在线免费观看| 国产午夜久久久| 日韩精品首页| 亚洲精品国产精品乱码不99按摩| 毛片毛片毛片毛| 亚洲女同av| 亚洲一区二区精品久久av| 欧美主播一区二区三区美女 久久精品人 | 亚洲一二三区在线观看| 日本中文不卡| 无码精品人妻一区二区三区影院| 精品一区二区三区的国产在线播放| 91精品国产高清久久久久久| 国产又粗又硬又长又爽| 狠狠做六月爱婷婷综合aⅴ | 国产精品一二三区视频| 成人午夜电影久久影院| 成人免费看片视频| 中国精品一区二区| 美女爽到呻吟久久久久| 97国产一区二区精品久久呦| 波多野结衣不卡视频| jiujiure精品视频播放| 亚洲视频日韩精品| 泷泽萝拉在线播放| 亚洲综合图色| 国产视频精品自拍| 色天使在线视频| 日本中文字幕在线一区| 亚洲第一区中文99精品| 在线播放第一页| 亚洲精品一区二区三区在线| 日韩欧美综合在线| 捷克做爰xxxⅹ性视频| 久久亚洲国产精品尤物| 欧美亚洲综合在线| 在线观看免费黄网站| 国精产品一区一区三区四川| 色呦呦网站一区| 少妇高清精品毛片在线视频| 天堂av在线网| 色婷婷精品久久二区二区蜜臀av| 丰满人妻中伦妇伦精品app| 忘忧草在线日韩www影院| 午夜精品久久久久久不卡8050| 好色先生视频污| 国产在线二区| 一区二区三区四区五区视频在线观看| 国产一二三四区在线观看| av免费在线网站| 亚洲综合久久久久| 久久久久久久午夜| 日本综合字幕| 欧美日韩国产三级| 亚洲制服在线观看| 精品嫩草影院| 亚洲男人av在线| 大胸美女被爆操| 牛牛国产精品| 78色国产精品| 亚洲精品一区二三区| 麻豆国产欧美日韩综合精品二区 | 福利在线一区| 亚洲美女久久久| 日本裸体美女视频| 激情成人综合| 国产精品黄页免费高清在线观看| 亚洲天堂网视频| 国产成人av一区二区三区在线 | 亚洲成人免费电影| 久久久久狠狠高潮亚洲精品| 狠狠久久综合| 亚洲精品在线免费观看视频| 在线不卡av电影| 欧美黄色一区二区| 日韩免费av在线| 国产av精国产传媒| 久久免费电影网| 中文字幕中文字幕一区三区| 55av亚洲| 欧美挠脚心视频网站| 黑森林av导航| 欧美中文一区二区| 久久久久日韩精品久久久男男| 国产视频1区2区| 国产精品一区二区在线观看不卡| 九九九九久久久久| 国产传媒在线播放| 色综合久久久久综合| 欧美日韩久久婷婷| 精品在线手机视频| 欧美黑人xxxx| 亚洲天堂手机在线| 91美女片黄在线观看91美女| 米仓穗香在线观看| 成人自拍视频网| 亚洲韩国日本中文字幕| 日韩三级在线观看视频| 久久久777| 国产精品国产精品国产专区不卡| 69久久精品| 色综合久久天天| 亚洲视频在线播放免费| 中文字幕日韩一区二区不卡 | 91视频久久久| 99这里都是精品| 国产精品va在线观看无码| 成人在线观看免费视频| 日韩麻豆第一页| 好吊操这里只有精品| 国产主播一区二区三区| 视频一区在线免费观看| 一个人看的www视频在线免费观看| 日韩一区二区三| 日韩av毛片在线观看| 久久综合九色综合欧美狠狠| 国产综合精品一区二区三区| 97超碰资源站在线观看| 欧美日韩不卡在线| 国产精品18在线| 麻豆精品一区二区三区| 日韩女优中文字幕| 欧美成人影院| 亚洲人免费视频| 国产精品久久久久久人| 91免费视频大全| 国产精品后入内射日本在线观看| gogo久久日韩裸体艺术| 久久99热这里只有精品国产| 国产精品主播一区二区| 亚洲欧洲精品一区二区三区不卡| 天天天干夜夜夜操| 成人在线国产| 91精品国产自产在线老师啪| 日本美女高清在线观看免费| 欧美高清激情brazzers| 欧美偷拍第一页| 国产成人精品三级| 国产黄色激情视频| 久久人人爽人人爽人人片av不| 欧美激情三级免费| 日韩在线一区二区三区四区| 五月婷婷久久综合| 亚洲av无码国产精品久久| 免播放器亚洲| 日韩免费中文专区| 亚洲高清国产拍精品26u| 久久天天躁狠狠躁夜夜av| 国产情侣av在线| 亚洲一线二线三线视频| 亚洲一级av无码毛片精品| 久久精品人人| 一区二区视频在线观看| 日韩欧美中文字幕一区二区三区| 欧美富婆性猛交| 日本激情视频网站| 欧美性猛交视频| 人妻互换一区二区激情偷拍| 国产伦精一区二区三区| 全黄性性激高免费视频| 免费精品国产的网站免费观看| 日本国产一区二区三区| 伊人免费在线| 精品久久久久av影院| 国产黄色片免费看| 国产精品色在线观看| 国产xxx在线观看| 亚洲欧美日韩国产一区二区| 日韩亚洲视频| 亚洲三区欧美一区国产二区| 欧美在线一区二区视频| 黄在线免费观看| 日韩av影视在线| 亚洲中文字幕一区二区| 亚洲一本大道在线| 中文字幕黄色网址| 国产成人日日夜夜| 日韩av播放器| 欧美日韩亚洲一区| 日韩动漫在线观看| 亚洲成人黄色| 国产精品久久久久久搜索| 91麻豆一二三四在线| 亚洲乱码一区二区| 国产精品毛片久久久久久久av| 亚洲成人动漫精品| 国产亚洲精品久久久久久豆腐| 不卡一区二区中文字幕| 牛夜精品久久久久久久| 亚洲精品人人| 黄瓜视频免费观看在线观看www| 日韩美女国产精品| 3d蒂法精品啪啪一区二区免费| www.成人影院| 久久久综合免费视频| 黄视频在线观看网站| 亚洲美女av网站| 亚洲黄色在线免费观看| 欧美日韩一二三区| 美日韩一二三区| 亚洲韩国一区二区三区| 男人天堂资源网| 久久久91精品国产一区二区精品| 在线观看网站黄| 久99久精品视频免费观看| 国产美女三级视频| 伊人久久久大香线蕉综合直播| 伊人婷婷久久| 欧美一区二区性| 欧美一级二级三级| 日韩影视在线观看| 国产亚洲自拍偷拍| 成人av婷婷| 国产伦精品一区二区| 国产一区二区三区黄网站| 国产精品久久久久久久久久尿 | 国产精品色悠悠| 桃色一区二区| 欧美亚洲成人网| 色偷偷色偷偷色偷偷在线视频| 久久99精品视频一区97| 成人在线播放免费观看| 丝袜亚洲另类欧美重口| 国产永久免费高清在线观看视频| 亚洲精品国产综合区久久久久久久 | 操一操视频一区| 亚洲免费一区三区| 成人免费看片网站| 一区二区三区欧洲区| 99中文字幕| 国产91精品入| 国产日产精品一区二区三区四区| 欧美专区视频| 成人h视频在线观看| youjizz亚洲| 国产精品视频入口| 精品久久ai电影| 免费在线成人av| 欧美午夜精彩| 一区二区视频在线播放| 亚洲精品极品少妇16p| 一区二区三区四区欧美| 久久精品影视| 久青草视频在线播放| 亚洲先锋成人| 激情深爱综合网| 午夜亚洲一区| 色噜噜狠狠一区二区| 久久精品噜噜噜成人av农村| 青青草原国产在线视频| 国产一区二区三区精品视频| 亚洲精品鲁一鲁一区二区三区 | 久久精品女人的天堂av| 免费看av成人| 性刺激综合网| 一本一本久久a久久综合精品| 国产精品久久久久久久久电影网| 欧美午夜国产| 欧美日韩在线视频一区二区三区| 久久精品女人| 色偷偷中文字幕| 99久久777色| 五月天婷婷丁香网| 一区二区三区成人| 在线观看 亚洲| 69堂精品视频| 日本成人动漫在线观看| 一区二区三区回区在观看免费视频| 麻豆视频网站在线观看| 久久久久久伊人| 日韩天堂在线| 99re国产| 国产一区三区在线播放| 成人免费看片视频在线观看| 亚洲天堂男人| 91制片厂毛片| 福利一区二区在线| 五月天精品在线| 亚洲黄色小视频| 天堂网一区二区三区| 欧美精品tushy高清| 天天av天天翘| 另类少妇人与禽zozz0性伦| 乱馆动漫1~6集在线观看| 国产精品自拍视频| 欧美黑人巨大videos精品| 四虎永久免费网站| 亚洲一区二区成人| 国产精品果冻传媒| 国产精品污www在线观看| 日本在线小视频| 337p亚洲精品色噜噜狠狠| 欧洲一级在线观看| 久久全球大尺度高清视频| 精品国产美女a久久9999| 狠狠色噜噜狠狠色综合久| 婷婷激情综合| 成人性视频欧美一区二区三区| 国产一区二区网址| 国产又黄又粗又猛又爽的| 色欧美片视频在线观看| 丰满人妻一区二区三区免费视频| 这里只有视频精品| 成人av观看| 国产在线播放一区二区| 综合一区av| 在线视频日韩欧美| 国产精品久久久久久久久快鸭| 欧美 日韩 精品| 亚洲成人精品在线| 激情网站在线| 91最新在线免费观看| 日韩理论在线| 美女网站免费观看视频| 91香蕉视频mp4| 国产一级生活片| 日韩欧美亚洲国产精品字幕久久久| 日本黄色片在线观看| 国产啪精品视频网站| 日韩国产欧美| 天堂一区在线观看| 国产女主播视频一区二区| 无码人妻丰满熟妇精品| 精品性高朝久久久久久久| 91禁在线看| 精品在线不卡| 国产一区导航| 噜噜噜在线视频| 欧美色xxxx| 黄色在线小视频| 国产精品九九久久久久久久| 国产一区二区电影在线观看| 日韩a在线播放| 久久久久久97三级| 色屁屁影院www国产高清麻豆| 亚洲欧美制服丝袜| 亚洲精品国产嫩草在线观看| 天堂精品一区二区三区| 毛片一区二区三区| 91嫩草|国产丨精品入口| 欧美一区二区三区视频在线观看| 国产鲁鲁视频在线观看特色| 444亚洲人体| 激情欧美一区二区三区| 亚洲中文字幕无码av| 欧美午夜激情视频| 国产免费a∨片在线观看不卡| 国产精品久久久一区| 亚洲乱码电影| 911亚洲精选| 色综合中文字幕| 亚洲成a人v欧美综合天堂麻豆| 91热精品视频| 亚洲裸体俱乐部裸体舞表演av| 中文人妻一区二区三区| 欧美在线观看你懂的| 二区三区在线观看| 大波视频国产精品久久| 免费亚洲一区| 天美传媒免费在线观看| 欧美va日韩va| 我爱我色成人网| 亚洲最新免费视频| 成人免费高清在线| 波多野结衣网站| 欧美丰满少妇xxxx| 国产欧美一区二区精品久久久| 亚洲娇小娇小娇小| 亚洲国产一区二区在线播放| 久久99久久| 3d动漫精品啪啪一区二区三区免费 | 亚洲色图欧洲色图婷婷| 少妇一区二区三区四区| 国产精彩精品视频| 亚洲视频在线免费| 中文字幕人妻一区二区| 欧美日韩久久久| av中文在线资源库| 夜夜爽99久久国产综合精品女不卡 | 精品露脸国产偷人在视频| 男人和女人做事情在线视频网站免费观看| 91中文字精品一区二区| 丝袜国产日韩另类美女| 欧美日韩国产精品综合| 国产一区二区三区视频在线观看| 亚洲不卡在线| 国产精品区在线| 狠狠躁天天躁日日躁欧美| 在线观看中文|