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

對 ASP.NET 異步編程的一點理解

開發(fā) 后端
本來這篇博文想探討下異步中的異常操作,但自己在做異步測試的時候,又對 ASP.NET 異步有了新的認識,可以說自己之前對異步的理解還是有些問題,先列一下這篇博文的三個解惑點:

本來這篇博文想探討下異步中的異常操作,但自己在做異步測試的時候,又對 ASP.NET 異步有了新的認識,可以說自己之前對異步的理解還是有些問題,先列一下這篇博文的三個解惑點:

  • async await 到底是什么鬼???

  • 異步操作中發(fā)生異常,該如何處理?

  • 異步操作中發(fā)生異常(有無 catch throw 情況),Application_Error 會不會捕獲?

之前測試過異步中的同步(很多種情況),這次我們把測試代碼寫更復(fù)雜些(異步中再進行異步),代碼如下:

  1. [Route("")] 
  2. [HttpGet] 
  3. public async Task<string> Index() 
  4.     System.Diagnostics.Debug.WriteLine("Thread.CurrentThread.ManagedThreadId1:" + Thread.CurrentThread.ManagedThreadId); 
  5.     var result = await Test(); 
  6.     System.Diagnostics.Debug.WriteLine("Thread.CurrentThread.ManagedThreadId6:" + Thread.CurrentThread.ManagedThreadId); 
  7.     return result; 
  8.  
  9. public static async Task<string> Test() 
  10.     System.Diagnostics.Debug.WriteLine("Thread.CurrentThread.ManagedThreadId2:" + Thread.CurrentThread.ManagedThreadId); 
  11.     using (var client = new HttpClient()) 
  12.     { 
  13.         var response = await client.GetAsync("http://stackoverflow.com/questions/14996529/why-is-my-async-asp-net-web-api-controller-blocking-the-main-thread"); 
  14.         await Test2(); 
  15.         System.Diagnostics.Debug.WriteLine("Thread.CurrentThread.ManagedThreadId5:" + Thread.CurrentThread.ManagedThreadId); 
  16.         return await response.Content.ReadAsStringAsync(); 
  17.     } 
  18.  
  19. public static async Task<string> Test2() 
  20.     System.Diagnostics.Debug.WriteLine("Thread.CurrentThread.ManagedThreadId3:" + Thread.CurrentThread.ManagedThreadId); 
  21.     using (var client = new HttpClient()) 
  22.     { 
  23.         var response = await client.GetAsync("http://stackoverflow.com/questions/33408905/pgadminiii-bug-on-query-tool"); 
  24.         System.Diagnostics.Debug.WriteLine("Thread.CurrentThread.ManagedThreadId4:" + Thread.CurrentThread.ManagedThreadId); 
  25.         return await response.Content.ReadAsStringAsync(); 
  26.     } 
  27.  
  28. 輸出結(jié)果(執(zhí)行四次): 
  29.  
  30. Thread.CurrentThread.ManagedThreadId1:8 
  31. Thread.CurrentThread.ManagedThreadId2:8 
  32. Thread.CurrentThread.ManagedThreadId3:6 
  33. Thread.CurrentThread.ManagedThreadId4:6 
  34. Thread.CurrentThread.ManagedThreadId5:6 
  35. Thread.CurrentThread.ManagedThreadId6:6 
  36.  
  37. Thread.CurrentThread.ManagedThreadId1:7 
  38. Thread.CurrentThread.ManagedThreadId2:7 
  39. Thread.CurrentThread.ManagedThreadId3:8 
  40. Thread.CurrentThread.ManagedThreadId4:7 
  41. Thread.CurrentThread.ManagedThreadId5:7 
  42. Thread.CurrentThread.ManagedThreadId6:7 
  43.  
  44. Thread.CurrentThread.ManagedThreadId1:5 
  45. Thread.CurrentThread.ManagedThreadId2:5 
  46. Thread.CurrentThread.ManagedThreadId3:5 
  47. Thread.CurrentThread.ManagedThreadId4:6 
  48. Thread.CurrentThread.ManagedThreadId5:6 
  49. Thread.CurrentThread.ManagedThreadId6:6 
  50.  
  51. Thread.CurrentThread.ManagedThreadId1:8 
  52. Thread.CurrentThread.ManagedThreadId2:8 
  53. Thread.CurrentThread.ManagedThreadId3:8 
  54. Thread.CurrentThread.ManagedThreadId4:8 
  55. Thread.CurrentThread.ManagedThreadId5:8 
  56. Thread.CurrentThread.ManagedThreadId6:8 

這個測試方法,我執(zhí)行了無數(shù)次,大致就是上面的四種情況,我當(dāng)時看到輸出結(jié)果,其實是很凌亂的,我也大家也一樣,并心里有一些疑問:你這真是異步編程嗎?為啥線程千奇百怪?并且最后那個還只有一個線程,這和同步有啥區(qū)別???

針對上面這個疑問,我想了很久,并對自己產(chǎn)生了一些質(zhì)疑的聲音:你每天都在寫 async await 代碼,你真的了解它嗎???然后我又重新找到上面那篇 jesse liu 的博文,反復(fù)讀了很多篇,最后終于有了一些“頓悟”,結(jié)合上面的測試代碼,我大致畫了一張示意圖:

結(jié)合上面的圖,我說一下自己的理解,在做測試的時候,HttpClient.GetAsync 盡量讓它執(zhí)行時間長些,比如請求的 URL 可以是 stackoverflow 或 github(原因你懂得?。?,因為有個時間差,這樣我們可以更好的了解線程的執(zhí)行情況,上面圖中“線程1、線程1x、線程3x、線程4x”等等,這些并 不是不同線程,也就是說線程1有可能等于線程1x或線程3x。。。從上面的輸出結(jié)果就可以看出,用線程x來表示兩個輸出之間所經(jīng)歷的 await 次數(shù),這就證明了一個疑惑:await 并不一定會創(chuàng)建和之前不一樣的線程。

到底什么是異步???我個人覺得,async 異步是一個偽概念,await 等待才是精髓,一個線程可以響應(yīng) 多個請求,如果是同步編程,一個線程在處理某一個請求的時候阻塞了(比如上面測試代碼中的 HttpClient.GetAsync 網(wǎng)絡(luò)操作),那么這個線程就會一直等待它處理,在這個等待的過程中,那么其他請求就不能再使用這個線程,又因為 IIS 線程池中的線程數(shù)量有限,那么同步編程下,高并發(fā)將是一個頭疼的問題,試想一下,如果線程池中的線程數(shù)量為 100 個,這 100 個線程在同時處理 100 個請求的時候,都悲催的阻塞掉了,這時候第 101 個請求將無法執(zhí)行,那么并發(fā)量就是 100。

接上面,同樣的處理過程,如果是異步編程,那將是什么情況呢?比如一個線程在處理某一個請求的時候,執(zhí)行到 await 操作,那么這個線程將會釋放回到線程池,然后進行等待,等待的過程中,原來的那個線程就可以處理其他請求或者這個請求的其他操作,注意等待并不是線程等 待,而是操作等待,我原來就很不理解這個地方,如果是線程等待,就表示這個線程會一直等待它完成,那和同步編程就是一樣的了,所以這種理解是錯誤的,你可 以這樣理解:await 等待的過程中,沒有線程?。?!

再接上面,等待操作完成之后,這時候就會從線程池中隨機拿一個線程繼續(xù)執(zhí)行,拿到的這個線程有可能是 await 操作剛剛釋放掉的,但也有可能是其他線程,上圖中的 2-6 操作就是這樣,一圖勝千言:

了解了整個過程之后,你才會明白 async await 到底是什么鬼?以及它真正的用武之地是什么?簡單總結(jié)幾點內(nèi)容:

  • async 異步網(wǎng)絡(luò)處理作用最明顯(HttpClient 請求或數(shù)據(jù)庫連接):這個我們大家都很清楚,也 很好理解,如果是其他操作,比如一個異步方法中你做了很多費時的計算,那這個異步將沒什么效果,說白了和同步一樣,而對于網(wǎng)絡(luò)操作,我們一般不做處理,發(fā) 起請求之后等待它完成就行,所以這時候執(zhí)行到這的線程,可以釋放并會到線程池中,網(wǎng)絡(luò)操作執(zhí)行完成之后,再從線程池中隨機拿一個線程繼續(xù)執(zhí)行。

  • async 異步并不是真正意義上的“異步”:什么意思呢?你仔細看下上面測試的輸出結(jié)果,會發(fā)現(xiàn) ManagedThreadId1-6 是順序輸出的,而不是先輸出 ManagedThreadId4 再輸出 ManagedThreadID3,所以,異步和同步的執(zhí)行過程是一樣的,并且一個請求下,執(zhí)行時間也是一樣的,上面的異步測試其實某種意義上,是測試不出任何東西的(從測試結(jié)果就可以看出),異步并不能減少你的執(zhí)行時間,而是增加你的請求執(zhí)行數(shù)量,這個東西說白了,其實就是并發(fā)量。

  • async 異步的精髓是 await:這個之前已經(jīng)提到了,準(zhǔn)確來說,async 異步的精髓是 await 時的線程回收與完成之后的線程切換,這個操作最大的價值是,避免線程的浪費等待,充分利用線程的執(zhí)行,有點類似于地主不能容忍奴隸閑著做無意義的事,而是希望他們 24 小時不停工作一樣。

另外,在 ASP.NET 應(yīng)用程序中,我們可以使用 Thread.CurrentThread 來訪問當(dāng)前的執(zhí)行線程,我之前想做這樣一個測試,讓當(dāng)前執(zhí)行線程 Sleep 一段時間,看看其他線程會不會執(zhí)行,但 Thread.CurrentThread 并沒有 Sleep 方法,而必須這樣訪問 Thread.Sleep(int millisecondsTimeout),如果這樣執(zhí)行這段代碼,那么當(dāng)前線程將會 Sleep,但其他線程并不會在它 Sleep 的時候,而繼續(xù)執(zhí)行,為什么?因為 CPU 在同一時間段內(nèi)只能執(zhí)行一個線程。

了解了 async await 到底是什么鬼后,博文一開始剩下的兩個有關(guān)異步操作中的異常問題,現(xiàn)在理解起來就非常容易了:

  • 異步操作中發(fā)生異常,該如何處理?:和同步一樣處理,同步中報錯,異步也一樣報錯,有人可能有這樣的疑問,比 如測試代碼中的 Index Action,執(zhí)行到 await Test 內(nèi)部操作的時候,突然拋出異常了,然后就想當(dāng)然的認為,既然是異步執(zhí)行的 Test 方法,那 Index 應(yīng)該不會影響吧?其實你執(zhí)行之后就會發(fā)現(xiàn),Index 頁面還是會拋出異常的,所以異常和異步?jīng)]半毛錢關(guān)系。

  • 異步操作中發(fā)生異常(有無 catch throw 情況),Application_Error 會不會捕獲?:無 catch,Application_Error 會捕獲;有 catch 無 throw,Application_Error 不會捕獲;有 catch 有 throw,Application_Error 會捕獲。

如果我們想讓某一個異步方法,在執(zhí)行拋出異常的時候,而不影響其他異步方法,那我們就 catch 而不 throw,比如我們的測試代碼:

 

  1. [Route("")] 
  2. [HttpGet] 
  3. public async Task<string> Index() 
  4.     System.Diagnostics.Debug.WriteLine("Thread.CurrentThread.ManagedThreadId1:" + Thread.CurrentThread.ManagedThreadId); 
  5.     var result = await Test(); 
  6.     System.Diagnostics.Debug.WriteLine("Thread.CurrentThread.ManagedThreadId6:" + Thread.CurrentThread.ManagedThreadId); 
  7.     return result; 
  8.  
  9. public static async Task<string> Test() 
  10.     try 
  11.     { 
  12.         System.Diagnostics.Debug.WriteLine("Thread.CurrentThread.ManagedThreadId2:" + Thread.CurrentThread.ManagedThreadId); 
  13.         using (var client = new HttpClient()) 
  14.         { 
  15.             var response = await client.GetAsync("http://stackoverflow.com/questions/33408905/pgadminiii-bug-on-query-tool"); 
  16.             System.Diagnostics.Debug.WriteLine("Thread.CurrentThread.ManagedThreadId3:" + Thread.CurrentThread.ManagedThreadId); 
  17.             throw new Exception("test exception");//這里出現(xiàn)了異常 
  18.             return await response.Content.ReadAsStringAsync(); 
  19.         } 
  20.     } 
  21.     catch (Exception ex) 
  22.     { 
  23.         System.Diagnostics.Debug.WriteLine("異常信息:" + ex.Message); 
  24.         return ""
  25.         //throw ex; 
  26.     } 

這樣的效果就是 Index 頁面不會報錯,并且也不會影響其他方法執(zhí)行,現(xiàn)在發(fā)現(xiàn)當(dāng)時疑惑這個問題的時候,還蠻白癡的,還是那句話,異常和異步?jīng)]半毛錢關(guān)系,相同的問題,同步也是這樣進行處理的。

博文內(nèi)容有點多,如果你不愿花時間看,可以直接記住這段話:如果你的應(yīng)用程序請求訪問很少(并發(fā)很?。?,異步和同步將是一樣的效 果,異步化改造是毫無意義的,而如果你的應(yīng)用程序請求訪問很多(并發(fā)很大),那么效果顯而易見,如果使用異步將會為你省掉幾臺服務(wù)器的錢,但代碼異步化并 不能使你的應(yīng)用程序執(zhí)行速度加快(指的是代碼執(zhí)行速度),垃圾代碼還是垃圾代碼,并不會有任何的改善,所以,寫好“好的代碼”很重要!!!

責(zé)任編輯:王雪燕 來源: 田園里的蟋蟀
相關(guān)推薦

2009-08-03 09:17:30

ASP.NET Ses

2009-08-04 16:34:13

ASP.NET代碼分離

2012-03-31 10:59:02

ASP.NET

2009-07-28 16:40:11

ASP.NET異步頁面

2009-08-21 17:11:15

ASP.NET異步回調(diào)

2014-09-17 10:30:25

代碼

2009-08-03 17:35:07

ASP.NET WebASP.NET編程工具

2009-08-03 13:38:18

ASP.NET編程模型

2009-07-22 10:13:31

異步ActionASP.NET MVC

2011-11-22 09:32:39

ASP.NET

2009-08-21 17:02:20

ASP.NET異步回調(diào)

2009-07-24 18:02:46

ASP.NET編程

2009-07-24 15:41:00

ASP.NET編程入門

2009-07-24 10:41:00

ASP.NET Ses

2009-12-11 14:17:36

ASP.NET Coo

2009-08-10 15:42:33

ASP.NET Che

2009-08-10 16:07:44

ASP.NET Lin

2009-07-22 17:13:21

Asp.Net編程

2009-07-23 13:00:37

ASP.NET編程

2009-12-22 13:55:41

ASP.NETWebService
點贊
收藏

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

精品日韩欧美在线| **欧美大码日韩| 啪一啪鲁一鲁2019在线视频| 免费在线观看a视频| 国产精品国产三级在线观看| 亚洲午夜国产一区99re久久| 欧美在线一区二区三区四区| 夜夜躁狠狠躁日日躁av| 欧美三区不卡| 亚洲丝袜在线视频| av在线天堂网| 欧美日韩在线精品一区二区三区激情综合 | 97超碰青青草| 欧美色18zzzzxxxxx| 激情六月婷婷综合| 午夜精品视频网站| 欧美日韩午夜视频| 精品国精品国产自在久国产应用| 日韩欧美美女一区二区三区| 波多结衣在线观看| 涩涩av在线| 一区二区三区中文字幕在线观看| 日本一区二区在线视频| 免费观看黄一级视频| 久久国产福利国产秒拍| 日本精品免费观看| 日韩黄色a级片| 午夜亚洲福利| 日韩网站免费观看高清| 国产三级av在线播放| 超碰97久久| 日韩一卡二卡三卡| 可以看污的网站| 极品美女一区| 精品久久久久久中文字幕一区奶水| 最新中文字幕久久| 在线看黄色av| 国产精品欧美一区二区三区| 欧美日韩精品不卡| 婷婷国产在线| 成人av动漫在线| 亚洲资源在线看| 伊人精品一区二区三区| 日韩电影免费在线观看网站| 欧美亚洲视频在线看网址| 久久久久久久久精| 欧美fxxxxxx另类| 久久天天躁狠狠躁夜夜躁2014| 一级肉体全黄裸片| 区一区二视频| 中文字幕久久精品| 免费成人美女女在线观看| av一区二区在线播放| 国产午夜精品一区二区三区| 欧美激情aaa| 欧洲乱码伦视频免费| 中文字幕av一区| 亚洲欧美日韩第一页| 日本一区二区三区视频| 这里只有精品久久| 欧美自拍偷拍网| 羞羞答答成人影院www| 日韩专区在线播放| 国产高潮流白浆| 一区免费在线| 日本久久中文字幕| 国产精华7777777| 久久国产剧场电影| 91在线色戒在线| 亚洲精品中文字幕成人片| 成人免费视频一区| 欧美日韩一区在线播放| 91激情在线| 亚洲女同一区二区| 日韩网站在线免费观看| 中文不卡1区2区3区| 色88888久久久久久影院野外| 亚洲国产精品三区| 久久69av| 亚洲免费小视频| 天堂а√在线中文在线鲁大师| 欧美黄色精品| 日韩av手机在线观看| 国产精品一区二区人人爽| 国产成人av电影在线| 国内精品久久国产| 1区2区3区在线观看| 亚洲激情欧美激情| 欧美黄色一级片视频| 国产精品视频一区视频二区 | 经典三级在线| 亚洲欧美一区二区视频| 国产成人永久免费视频| 欧美人与性动交xxⅹxx| 制服丝袜日韩国产| 日本japanese极品少妇| 天天av综合| 69**夜色精品国产69乱| 一个人看的www日本高清视频| 国产成都精品91一区二区三| 欧美激情一区二区三区在线视频 | 亚洲三级理论片| 国产精品无码一区二区在线| 久久久久毛片| 日韩成人xxxx| 国产精品九九九九九九| 老司机精品导航| 97碰碰视频| 福利成人在线观看| 五月天国产精品| 国产资源中文字幕| 国产成人调教视频在线观看| 欧美大片欧美激情性色a∨久久| 亚洲毛片一区二区三区| 国产成人精品免费| 中文字幕久久综合| 二区三区不卡| 亚洲精品国产电影| 欧美性猛交xxxxx少妇| 日韩激情中文字幕| 精品视频一区二区三区四区| 在线午夜影院| 欧美日韩免费视频| www.av天天| 午夜一区不卡| 国产日韩三区| 青青青草视频在线| 欧美一区二区视频网站| 亚洲最大成人综合网| 亚洲一区欧美激情| 国产一区二区三区av在线| 亚洲精品白浆| 日韩一级片在线观看| 欧美另类69xxxx| 日韩va欧美va亚洲va久久| 九九热久久66| av人人综合网| 亚洲第一页在线| 国产无码精品在线播放| 国产a视频精品免费观看| 只有这里有精品| 日韩成人在线一区| 三级精品视频久久久久| 怡春院在线视频| 国产欧美一区二区在线| 欧美日韩在线成人| 欧美色婷婷久久99精品红桃| 日韩av大片免费看| 国模吧精品人体gogo| 91国内精品野花午夜精品| 国产jk精品白丝av在线观看| 首页欧美精品中文字幕| 日韩.欧美.亚洲| 久久69成人| 久久夜色精品国产| 性网爆门事件集合av| 一区二区三区精品视频| 亚洲视频天天射| 极品日韩av| 明星裸体视频一区二区| 婷婷激情一区| 日韩中文字幕国产精品| 国产精品一二三四五区| 亚洲自拍偷拍av| xxxx黄色片| 亚洲免费影院| 色综合久久久久久久久五月| 伊人久久精品| 久久久久久亚洲精品不卡| 天堂a中文在线| 在线免费精品视频| 久久av红桃一区二区禁漫| 国产麻豆成人传媒免费观看| 日韩精品一区二区免费| 免费av一区| 91亚洲一区精品| xxxx视频在线| 国产亚洲精品成人av久久ww| 一级淫片免费看| 亚洲一区av在线| 中文字幕一区二区三区人妻| 美女精品一区二区| 777久久精品一区二区三区无码 | 亚洲第一在线综合在线| 国产电影一区二区| 97精品伊人久久久大香线蕉| 高清av电影在线观看| 日韩欧美中文字幕制服| 国产又粗又爽视频| 亚洲天堂2014| 亚洲熟妇一区二区三区| 国模少妇一区二区三区| 欧美一区二区中文字幕| 久久国产中文字幕| 国产亚洲福利社区| 天堂久久一区| 奇米影视亚洲狠狠色| 黄色一级片在线观看| 日韩hd视频在线观看| 国产精品毛片一区二区在线看舒淇| 亚洲国产另类av| 麻豆视频免费在线播放| 99这里只有久久精品视频| 一区二区三区 日韩| 亚洲国产免费| 最新国产精品久久| 国产一区二区三区91| 1卡2卡3卡精品视频| 国产一区影院| 日本老师69xxx| 波多野结衣中文在线| 日韩有码在线视频| 激情福利在线| 亚洲精品电影在线| 亚洲av综合色区无码一区爱av| 欧美在线影院一区二区| 黄色一级片免费看| 亚洲综合久久av| 黄色a级片在线观看| 国产午夜精品一区二区| 男男做爰猛烈叫床爽爽小说| 国产一区在线不卡| 在线观看国产中文字幕| 免费日韩一区二区| 日韩欧美视频网站| 伊人久久婷婷| 少妇久久久久久被弄到高潮| 久久人人99| 婷婷精品国产一区二区三区日韩| 日韩av三区| 国内精品视频免费| 91蜜桃臀久久一区二区| 91久久久久久| 欧美日韩免费电影| 国产精品极品尤物在线观看| 免费亚洲电影| 国产91久久婷婷一区二区| 一个人www视频在线免费观看| 久久久亚洲福利精品午夜| 日本大片在线播放| 欧美高清在线观看| 超碰在线97国产| 欧美激情精品久久久| 色呦呦在线播放| 九九热这里只有精品免费看| 在线中文字幕视频观看| 欧美成人一区二区三区电影| 国产三区视频在线观看| 久久国产精品久久久久久久久久| 麻豆tv在线| 另类图片亚洲另类| 亚洲性图自拍| 久久久久女教师免费一区| 国产偷倩在线播放| 97久久精品人搡人人玩| 一个人www视频在线免费观看| 欧美在线视频网站| 成人视屏在线观看| 成人黄色av播放免费| 国产精品一区二区美女视频免费看| 91精品视频观看| 亚洲不卡视频| 国产日韩精品推荐| 国内精品久久久久久久久电影网 | 99影视tv| 久久草在线视频| 明星裸体视频一区二区| 久久精品国产68国产精品亚洲| 香蕉精品视频在线| 自由日本语亚洲人高潮| 日韩中字在线观看| 日韩综合小视频| 奇米777在线视频| 99免费精品视频| 免费看黄色三级| 尤物在线观看一区| 精品在线播放视频| 欧美亚男人的天堂| 国产精品一级视频| 日韩精品视频三区| 日本激情在线观看| 久久久欧美一区二区| gay欧美网站| 91在线高清免费观看| 日本一区福利在线| 在线无限看免费粉色视频| 精品二区久久| 一道本视频在线观看| 国产成人av电影在线| 国产综合精品在线| 亚洲已满18点击进入久久| 免费视频久久久| 日韩午夜精品电影| 黄色网址在线播放| 欧美国产亚洲视频| 全球最大av网站久久| 国产伦精品一区二区三| 日韩成人精品一区| 黄色一级在线视频| 精品亚洲免费视频| 免费看污黄网站在线观看| 亚洲乱码国产乱码精品精98午夜| 六月丁香婷婷综合| 日韩欧美一二三区| eeuss影院在线观看| 26uuu亚洲伊人春色| 看亚洲a级一级毛片| 日韩国产在线一区| 亚洲视频二区| 91av免费观看| 国产精品美女久久久久高潮| 午夜精品久久久久久久久久久久久蜜桃 | 人妻互换免费中文字幕| 久久机这里只有精品| 巨胸大乳www视频免费观看| 亚洲综合色在线| 国产理论视频在线观看| 亚洲一区第一页| 电影一区二区三| 久久99导航| 亚洲国产午夜| 蜜臀视频在线观看| 亚洲激情图片qvod| 国产v片在线观看| 精品国产一区二区三区四区在线观看 | 天天操天天色综合| 亚洲精品久久久久avwww潮水| 日韩一区二区福利| 欧美亚洲人成在线| 日韩在线电影一区| 日韩成人精品在线观看| 久久久久久久久久久国产精品| 亚洲h在线观看| 高清乱码毛片入口| 欧美高清视频一区二区| 香蕉成人app| 免费观看亚洲视频| 国产一区二区伦理| 青青草原在线免费观看| 91精品国产乱| 成人在线免费看片| 91精品视频大全| 午夜视频一区| 免费黄色a级片| 香蕉影视欧美成人| 日韩一级片免费观看| 性色av一区二区三区| 欧美精品密入口播放| 日韩免费视频播放| 99re亚洲国产精品| 国产伦精品一区二区三区视频网站| 日韩精品999| 日韩影片中文字幕| 亚洲人成网站在线观看播放 | 人妻换人妻a片爽麻豆| 亚洲图片欧美色图| 少妇高潮一区二区三区99小说| 亚洲 日韩 国产第一| 日韩理论电影中文字幕| 少妇性l交大片| 中文字幕日本乱码精品影院| 99久久精品国产一区色| 久久久久久久久久久久久久久久久久av| 精品按摩偷拍| 欧美丰满熟妇xxxxx| 国产精品久久久久aaaa樱花 | 激情视频小说图片| 国产成人av电影免费在线观看| 国产情侣在线视频| 亚洲新中文字幕| 9999在线精品视频| 成年人午夜视频在线观看| 久久久久国产精品厨房| 一级黄色大片免费| 欧美国产视频日韩| 色棕色天天综合网| 手机av在线网站| 午夜精品久久久久久久久| 久久国产精品高清一区二区三区| 国产精品中文字幕在线观看| 欧美久久成人| 三上悠亚影音先锋| 日韩欧美一区在线观看| 亚洲免费福利| 国产精品美女在线播放| 暴力调教一区二区三区| 久久精品偷拍视频| 九九热精品视频国产| 国产成人手机高清在线观看网站| 善良的小姨在线| 日韩欧美亚洲范冰冰与中字| 蜜桃av在线免费观看| 精品一区二区三区自拍图片区| 奇米亚洲午夜久久精品| 国产亚洲欧美精品久久久www| 亚洲日韩中文字幕在线播放| 日韩在线成人| 日韩一级片播放| 午夜精品在线看| 国产精品久久麻豆|