久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2万字,看完这篇才敢说自己真的懂线程池!

發(fā)布時間:2025/3/11 编程问答 10 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2万字,看完这篇才敢说自己真的懂线程池! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

線程池可以說是 Java 進階必備的知識點了,也是面試中必備的考點,可能不少人看了一些文章后能對線程池工作原理說上一二,但這還遠(yuǎn)遠(yuǎn)不夠,如果碰到比較有經(jīng)驗的面試官再繼續(xù)追問,很可能會被吊打,考慮如下問題:

  • Tomcat 的線程池和 JDK 的線程池實現(xiàn)有啥區(qū)別, Dubbo 中有類似 Tomcat 的線程池實現(xiàn)嗎?

  • 我司網(wǎng)關(guān) dubbo 調(diào)用線程池曾經(jīng)出現(xiàn)過這樣的一個問題:壓測時接口可以正常返回,但接口 RT 很高,假設(shè)設(shè)置的核心線程大小為 500,最大線程為 800,緩沖隊列為 5000,你能從這個設(shè)置中發(fā)現(xiàn)出一些問題并對這些參數(shù)進行調(diào)優(yōu)嗎?

  • 線程池里的線程真的有核心線程和非核心線程之分?

  • 線程池被 shutdown 后,還能產(chǎn)生新的線程?

  • 線程把任務(wù)丟給線程池后肯定就馬上返回了?

  • 線程池里的線程異常后會再次新增線程嗎,如何捕獲這些線程拋出的異常?

  • 線程池的大小如何設(shè)置,如何動態(tài)設(shè)置線程池的參數(shù)

  • 線程池的狀態(tài)機畫一下?

  • 阿里 Java 代碼規(guī)范為什么不允許使用 Executors 快速創(chuàng)建線程池?

  • 使用線程池應(yīng)該避免哪些問題,能否簡單說下線程池的最佳實踐?

  • 如何優(yōu)雅關(guān)閉線程池

  • 如何對線程池進行監(jiān)控

  • 相信不少人看了這些問題會有些懵逼

    其實這些問題的答案大多數(shù)都藏在線程池的源碼里,所以深入了解線程池的源碼非常重要,本章我們將會來學(xué)習(xí)一下線程池的源碼,相信看完之后,以上的問題大部分都能回答,另外一些問題我們也會在文中與大家一起探討。

    本文將會從以下幾個方面來介紹線程池的原理。

  • 為什么要用線程池

  • 線程池是如何工作的

  • 線程池提交任務(wù)的兩種方式

  • ThreadPoolExecutor 源碼剖析

  • 解答開篇的問題

  • 線程池的最佳實踐

  • 總結(jié)

  • 相信大家看完對線程池的理解會更進一步,肝文不易,看完別完了三連哦。

    為什么要用線程池

    創(chuàng)建線程有三大開銷,如下:

    1、其實 Java 中的線程模型是基于操作系統(tǒng)原生線程模型實現(xiàn)的,也就是說 Java 中的線程其實是基于內(nèi)核線程實現(xiàn)的,線程的創(chuàng)建,析構(gòu)與同步都需要進行系統(tǒng)調(diào)用,而系統(tǒng)調(diào)用需要在用戶態(tài)與內(nèi)核中來回切換,代價相對較高,線程的生命周期包括「線程創(chuàng)建時間」,「線程執(zhí)行任務(wù)時間」,「線程銷毀時間」,創(chuàng)建和銷毀都需要導(dǎo)致系統(tǒng)調(diào)用。2、每個 Thread 都需要有一個內(nèi)核線程的支持,也就意味著每個 Thread 都需要消耗一定的內(nèi)核資源(如內(nèi)核線程的??臻g),因此能創(chuàng)建的 Thread 是有限的,默認(rèn)一個線程的線程棧大小是 1 M,有圖有真相

    圖中所示,在 Java 8 下,創(chuàng)建 19 個線程(thread #19)需要創(chuàng)建 19535 KB,即 1 M 左右,reserved 代表如果創(chuàng)建 19 個線程,操作系統(tǒng)保證會為其分配這么多空間(實際上并不一定分配),committed 則表示實際已分配的空間大小。

    畫外音:注意,這是在 Java 8 下的線程占用空間情況,但在 Java 11 中,對線程作了很大的優(yōu)化,創(chuàng)建一個線程大概只需要 40 KB,空間消耗大大減少

    3、線程多了,導(dǎo)致不可忽視的上下文切換開銷。

    由此可見,線程的創(chuàng)建是昂貴的,所以必須以線程池的形式來管理這些線程,在線程池中合理設(shè)置線程大小和管理線程,以達(dá)到以合理的創(chuàng)建線程大小以達(dá)到最大化收益,最小化風(fēng)險的目的,對于開發(fā)人員來說,要完成任務(wù)不用關(guān)心線程如何創(chuàng)建,如何銷毀,如何協(xié)作,只需要關(guān)心提交的任務(wù)何時完成即可,對線程的調(diào)優(yōu),監(jiān)控等這些細(xì)枝末節(jié)的工作通通交給線程池來實現(xiàn),所以也讓開發(fā)人員得到極大的解脫!

    類似線程池的這種池化思想應(yīng)用在很多地方,比如數(shù)據(jù)庫連接池,Http 連接池等,避免了昂貴資源的創(chuàng)建,提升了性能,也解放了開發(fā)人員。

    ThreadPoolExecutor 設(shè)計架構(gòu)圖

    首先我們來看看 Executor 框架的設(shè)計圖

    • Executor: 最頂層的 Executor 接口只提供了一個 execute 接口,實現(xiàn)了提交任務(wù)與執(zhí)行任務(wù)的解藕,這個方法是最核心的,也是我們源碼剖析的重點,此方法最終是由 ThreadPoolExecutor 實現(xiàn)的,

    • ExecutorService 擴展了 Executor 接口,實現(xiàn)了終止執(zhí)行器,單個/批量提交任務(wù)等方法

    • AbstractExecutorService 實現(xiàn)了 ExecutorService 接口,實現(xiàn)了除 execute 以外的所有方法,只將一個最重要的 execute 方法交給 ThreadPoolExecutor 實現(xiàn)。

    這樣的分層設(shè)計雖然層次看起來挺多,但每一層每司其職,邏輯清晰,值得借鑒。

    線程池是如何工作的

    首先我們來看下如何創(chuàng)建一個線程池

    ThreadPoolExecutor?threadPool?=?new?ThreadPoolExecutor(10,?20,?600L,TimeUnit.SECONDS,?new?LinkedBlockingQueue<>(4096),new?NamedThreadFactory("common-work-thread")); //?設(shè)置拒絕策略,默認(rèn)為?AbortPolicy threadPool.setRejectedExecutionHandler(new?ThreadPoolExecutor.AbortPolicy());

    看下其構(gòu)造方法簽名如下

    public?ThreadPoolExecutor(int?corePoolSize,int?maximumPoolSize,long?keepAliveTime,TimeUnit?unit,BlockingQueue<Runnable>?workQueue,ThreadFactory?threadFactory,RejectedExecutionHandler?handler)?{//?省略代碼若干 }

    要理解這些參數(shù)具體代表的意義,必須清楚線程池提交任務(wù)與執(zhí)行任務(wù)流程,如下

    圖片來自美團技術(shù)團隊

    步驟如下

    1、corePoolSize:如果提交任務(wù)后線程還在運行,當(dāng)線程數(shù)小于 corePoolSize 值時,無論線程池中的線程是否忙碌,都會創(chuàng)建線程,并把任務(wù)交給此新創(chuàng)建的線程進行處理,如果線程數(shù)少于等于 corePoolSize,那么這些線程不會回收,除非將 allowCoreThreadTimeOut 設(shè)置為 true,但一般不這么干,因為頻繁地創(chuàng)建銷毀線程會極大地增加系統(tǒng)調(diào)用的開銷。

    2、workQueue:如果線程數(shù)大于核心數(shù)(corePoolSize)且小于最大線程數(shù)(maximumPoolSize),則會將任務(wù)先丟到阻塞隊列里,然后線程自己去阻塞隊列中拉取任務(wù)執(zhí)行。

    3、maximumPoolSize: 線程池中最大可創(chuàng)建的線程數(shù),如果提交任務(wù)時隊列滿了且線程數(shù)未到達(dá)這個設(shè)定值,則會創(chuàng)建線程并執(zhí)行此次提交的任務(wù),如果提交任務(wù)時隊列滿了但線池數(shù)已經(jīng)到達(dá)了這個值,此時說明已經(jīng)超出了線池程的負(fù)載能力,就會執(zhí)行拒絕策略,這也好理解,總不能讓源源不斷地任務(wù)進來把線程池給壓垮了吧,我們首先要保證線程池能正常工作。

    4、RejectedExecutionHandler:一共有以下四種拒絕策略

    • AbortPolicy:丟棄任務(wù)并拋出異常,這也是默認(rèn)策略;

    • CallerRunsPolicy:用調(diào)用者所在的線程來執(zhí)行任務(wù),所以開頭的問題「線程把任務(wù)丟給線程池后肯定就馬上返回了?」我們可以回答了,如果用的是 CallerRunsPolicy 策略,提交任務(wù)的線程(比如主線程)提交任務(wù)后并不能保證馬上就返回,當(dāng)觸發(fā)了這個 reject 策略不得不親自來處理這個任務(wù)。

    • DiscardOldestPolicy:丟棄阻塞隊列中靠最前的任務(wù),并執(zhí)行當(dāng)前任務(wù)。

    • DiscardPolicy:直接丟棄任務(wù),不拋出任何異常,這種策略只適用于不重要的任務(wù)。

    5、keepAliveTime: 線程存活時間,如果在此時間內(nèi)超出 corePoolSize 大小的線程處于 idle 狀態(tài),這些線程會被回收

    6、threadFactory:可以用此參數(shù)設(shè)置線程池的命名,指定 defaultUncaughtExceptionHandler(有啥用,后文闡述),甚至可以設(shè)定線程為守護線程。

    現(xiàn)在問題來了,該如何合理設(shè)置這些參數(shù)呢。

    首先來看線程大小設(shè)置

    <<Java 并發(fā)編程實戰(zhàn)>>告訴我們應(yīng)該分兩種情況

  • 針對 CPU 密集型的任務(wù),在有 Ncpu個處理器的系統(tǒng)上,當(dāng)線程池的大小為 Ncpu + 1 時,通常能實現(xiàn)最優(yōu)的利用率,+1 是因為當(dāng)計算密集型線程偶爾由于缺頁故障或其他原因而暫停工作時,這個"額外"的線程也能確保 CPU 的時鐘周期不會被浪費,所謂 CPU 密集,就是線程一直在忙碌,這樣將線程池的大小設(shè)置為 Ncpu + 1 避免了線程的上下文切換,讓線程時刻處于忙碌狀態(tài),將 CPU 的利用率最大化。

  • 針對 IO 密集型的任務(wù),它也給出了如下計算公式

  • 這些公式看看就好,實際的業(yè)務(wù)場景中基本用不上,這些公式太過理論化了,脫離業(yè)務(wù)場景,僅可作個理論參考,舉個例子,你說 CPU 密集型任務(wù)設(shè)置線程池大小為 N + 1個,但實際上在業(yè)務(wù)中往往不只設(shè)置一個線程池,這種情況套用的公式就懵逼了

    再來看 workQueue 的大小設(shè)置

    由上文可知,如果最大線程大于核心線程數(shù),當(dāng)且僅當(dāng)核心線程滿了且 workQueue 也滿的情況下,才會新增新的線程,也就是說如果 workQueue 是無界隊列,那么當(dāng)線程數(shù)增加到 corePoolSize 后,永遠(yuǎn)不會再新增新的線程了,也就是說此時 maximumPoolSize 的設(shè)置就無效了,也無法觸發(fā) RejectedExecutionHandler 拒絕策略,任務(wù)只會源源不斷地填充到 workQueue,直到 OOM。

    所以 workQueue 應(yīng)該為有界隊列,至少保證在任務(wù)過載的情況下線程池還能正常工作,那么哪些是有有界隊列,哪些是無界隊列呢。

    有界隊列我們常用的以下兩個

    • LinkedBlockingQueue: 鏈表構(gòu)成的有界隊列,按先進先出(FIFO)的順序?qū)υ剡M行排列,但注意在創(chuàng)建時需指定其大小,否則其大小默認(rèn)為 Integer.MAX_VALUE,相當(dāng)于無界隊列了

    • ArrayBlockingQueue: 數(shù)組實現(xiàn)的有界隊列,按先進先出(FIFO)的順序?qū)υ剡M行排列。

    無界隊列我們常用 PriorityBlockingQueue 這個優(yōu)先級隊列,任務(wù)插入的時候可以指定其權(quán)重以讓這些任務(wù)優(yōu)先執(zhí)行,但這個隊列很少用,原因很簡單,線程池里的任務(wù)執(zhí)行順序一般是平等的,如果真有必須某些類型的任務(wù)需要優(yōu)先執(zhí)行,大不了再開個線程池好了,將不同的任務(wù)類型用不同的線程池隔離開來,也是合理利用線程池的一種實踐。

    說到這我相信大家應(yīng)該能回答開頭的問題「阿里 Java 代碼規(guī)范為什么不允許使用 Executors 快速創(chuàng)建線程池?」,最常見的是以下兩種創(chuàng)建方式

    image-20201109002227476

    newCachedThreadPool 方法的最大線程數(shù)設(shè)置成了 Integer.MAX_VALUE,而 newSingleThreadExecutor 方法創(chuàng)建 workQueue 時 LinkedBlockingQueue 未聲明大小,相當(dāng)于創(chuàng)建了無界隊列,一不小心就會導(dǎo)致 OOM。

    threadFactory 如何設(shè)置

    一般業(yè)務(wù)中會有多個線程池,如果某個線程池出現(xiàn)了問題,定位是哪一個線程出問題很重要,所以為每個線程池取一個名字就很有必要了,我司用的 dubbo 的 NamedThreadFactory 來生成 threadFactory,創(chuàng)建很簡單

    new?NamedThreadFactory("demo-work")

    它的實現(xiàn)還是很巧妙的,有興趣地可以看看它的源碼,每調(diào)用一次,底層有個計數(shù)器會加一,會依次命名為 「demo-work-thread-1」, 「demo-work-thread-2」, 「demo-work-thread-3」這樣遞增的字符串。

    在實際的業(yè)務(wù)場景中,一般很難確定 corePoolSize, workQueue,maximumPoolSize 的大小,如果出問題了,一般來說只能重新設(shè)置一下這些參數(shù)再發(fā)布,這樣往往需要耗費一些時間,美團的這篇文章給出了讓人眼前一亮的解決方案,當(dāng)發(fā)現(xiàn)問題(線程池監(jiān)控告警)時,動態(tài)調(diào)整這些參數(shù),可以讓這些參數(shù)實時生效,能在發(fā)現(xiàn)問題時及時解決,確實是個很好的思路。

    線程池提交任務(wù)的兩種方式

    線程池創(chuàng)建好了,該怎么給它提交任務(wù),有兩種方式,調(diào)用 execute 和 submit 方法,來看下這兩個方法的方法簽名

    //?方式一:execute 方法 public?void?execute(Runnable?command)?{ }//?方式二:ExecutorService 中 submit 的三個方法 <T>?Future<T>?submit(Callable<T>?task); <T>?Future<T>?submit(Runnable?task,?T?result); Future<?>?submit(Runnable?task);

    區(qū)別在于調(diào)用 execute 無返回值,而調(diào)用 ?submit 可以返回 Future,那么這個 Future 能到底能干啥呢,看它的接口

    public?interface?Future<V>?{/***?取消正在執(zhí)行的任務(wù),如果任務(wù)已執(zhí)行或已被取消,或者由于某些原因不能取消則返回?false*?如果任務(wù)未開始或者任務(wù)已開始但可以中斷(mayInterruptIfRunning?為?true),則*?可以取消/中斷此任務(wù)*/boolean?cancel(boolean?mayInterruptIfRunning);/***?任務(wù)在完成前是否已被取消*/boolean?isCancelled();/***?正常的執(zhí)行完流程流程,或拋出異常,或取消導(dǎo)致的任務(wù)完成都會返回?true*/boolean?isDone();/***?阻塞等待任務(wù)的執(zhí)行結(jié)果*/V?get()?throws?InterruptedException,?ExecutionException;/***?阻塞等待任務(wù)的執(zhí)行結(jié)果,不過這里指定了時間,如果在?timeout?時間內(nèi)任務(wù)還未執(zhí)行完成,*?則拋出?TimeoutException?異常*/V?get(long?timeout,?TimeUnit?unit)throws?InterruptedException,?ExecutionException,?TimeoutException; }

    可以用 Future 取消任務(wù),判斷任務(wù)是否已取消/完成,甚至可以阻塞等待結(jié)果。

    submit 為啥能提交任務(wù)(Runnable)的同時也能返回任務(wù)(Future)的執(zhí)行結(jié)果呢

    原來在最后執(zhí)行 execute 前用 newTaskFor 將 task 封裝成了 RunnableFuture,newTaskFor 返回了 FutureTask 這個類,結(jié)構(gòu)圖如下

    可以看到 FutureTask 這個接口既實現(xiàn)了 Runnable 接口,也實現(xiàn) Future 接口,所以在提交任務(wù)的同時也能利用 Future 接口來執(zhí)行任務(wù)的取消,獲取任務(wù)的狀態(tài),等待執(zhí)行結(jié)果這些操作。

    execute 與 submit 除了是否能返回執(zhí)行結(jié)果這一區(qū)別外,還有一個重要區(qū)別,那就是使用 execute 執(zhí)行如果發(fā)生了異常,是捕獲不到的,默認(rèn)會執(zhí)行 ThreadGroup 的 uncaughtException 方法(下圖數(shù)字 2 對應(yīng)的邏輯)

    所以如果你想監(jiān)控執(zhí)行 execute 方法時發(fā)生的異常,需要通過 threadFactory 來指定一個 UncaughtExceptionHandler,這樣就會執(zhí)行上圖中的 1,進而執(zhí)行 UncaughtExceptionHandler 中的邏輯,如下所示:

    //1.實現(xiàn)一個自己的線程池工廠 ThreadFactory?factory?=?(Runnable?r)?->?{//創(chuàng)建一個線程Thread?t?=?new?Thread(r);//給創(chuàng)建的線程設(shè)置UncaughtExceptionHandler對象?里面實現(xiàn)異常的默認(rèn)邏輯t.setDefaultUncaughtExceptionHandler((Thread?thread1,?Throwable?e)?->?{//?在此設(shè)置統(tǒng)計監(jiān)控邏輯System.out.println("線程工廠設(shè)置的exceptionHandler"?+?e.getMessage());});return?t; };//?2.創(chuàng)建一個自己定義的線程池,使用自己定義的線程工廠 ExecutorService?service?=?new?ThreadPoolExecutor(1,?1,?0,?TimeUnit.MILLISECONDS,new?LinkedBlockingQueue(10),factory);//3.提交任務(wù) service.execute(()->{int?i=1/0; });

    執(zhí)行以上邏輯最終會輸出「線程工廠設(shè)置的exceptionHandler/ by zero」,通過這樣的方式就能通過設(shè)定的 defaultUncaughtExceptionHandler 來執(zhí)行我們的監(jiān)控邏輯了。

    如果用 submit ,如何捕獲異常呢,當(dāng)我們調(diào)用 future.get 就可以捕獲

    Callable?testCallable?=?xxx; Future?future?=?executor.submit(myCallable); try?{future1.get(3)); }?catch?(InterruptedException?e)?{e.printStackTrace(); }?catch?(ExecutionException?e)?{e.printStackTrace(); }

    那么 future 為啥在 get 的時候才捕獲異步呢,因為在執(zhí)行 submit 時拋出異常后此異常被保存了起來,而在 get 的時候才被拋出

    關(guān)于 execute 和 submit 的執(zhí)行流程 why 神的這篇文章寫得非常透徹,我就不拾人牙慧了,建議大家好好品品,收獲會很大!

    ThreadPoolExecutor 源碼剖析

    前面鋪墊了這么多,終于到了最核心的源碼剖析環(huán)節(jié)了。

    對于線程池來說,我們最關(guān)心的是它的「狀態(tài)」和「可運行的線程數(shù)量」,一般來說我們可以選擇用兩個變量來記錄,不過 Doug Lea 只用了一個變量(ctl)就達(dá)成目的了,我們知道變量越多,代碼的可維護性就越差,也越容易出 bug, 所以只用一個變量就達(dá)成了兩個變量的效果,這讓代碼的可維護性大大提高,那么他是怎么設(shè)計的呢

    //?ThreadPoolExecutor.java public?class?ThreadPoolExecutor?extends?AbstractExecutorService?{private?final?AtomicInteger?ctl?=?new?AtomicInteger(ctlOf(RUNNING,?0));private?static?final?int?COUNT_BITS?=?Integer.SIZE?-?3;private?static?final?int?CAPACITY???=?(1?<<?COUNT_BITS)?-?1;//?結(jié)果:111 00000000000000000000000000000private?static?final?int?RUNNING????=?-1?<<?COUNT_BITS;//?結(jié)果:?000?00000000000000000000000000000private?static?final?int?SHUTDOWN???=??0?<<?COUNT_BITS;//?結(jié)果:?001 00000000000000000000000000000private?static?final?int?STOP???????=??1?<<?COUNT_BITS;//?結(jié)果:?010?00000000000000000000000000000private?static?final?int?TIDYING????=??2?<<?COUNT_BITS;//?結(jié)果:?011 00000000000000000000000000000private?static?final?int?TERMINATED?=??3?<<?COUNT_BITS;//?獲取線程池的狀態(tài)private?static?int?runStateOf(int?c)?????{?return?c?&?~CAPACITY;?}//?獲取線程數(shù)量private?static?int?workerCountOf(int?c)??{?return?c?&?CAPACITY;?} }

    可以看到,ctl 是一個 原子類的 Integer 變量,有 32 位,低 29 位表示線程數(shù)量, 29 位最大可以表示 (2^29)-1 (大概 5 億多),足夠記錄線程大小了,如果未來還是不夠,可以把 ctl 聲明為 AtomicLong,高 3 位用來表示線程池的狀態(tài),3 位可以表示 8 個線程池的狀態(tài),由于線程池總共只有五個狀態(tài),所以 3 位也是足夠了,線程池的五個狀態(tài)如下

    • RUNNING: 接收新的任務(wù),并能繼續(xù)處理 workQueue 中的任務(wù)

    • SHUTDOWN: 不再接收新的任務(wù),不過能繼續(xù)處理 workQueue 中的任務(wù)

    • STOP: 不再接收新的任務(wù),也不再處理 workQueue 中的任務(wù),并且會中斷正在處理任務(wù)的線程

    • TIDYING: 所有的任務(wù)都完結(jié)了,并且線程數(shù)量(workCount)為 0 時即為此狀態(tài),進入此狀態(tài)后會調(diào)用 terminated() 這個鉤子方法進入 TERMINATED 狀態(tài)

    • TERMINATED: 調(diào)用 terminated() 方法后即為此狀態(tài)

    線程池的狀態(tài)流轉(zhuǎn)及觸發(fā)條件如下

    有了這些基礎(chǔ),我們來分析下 execute 的源碼

    public?void?execute(Runnable?command)?{if?(command?==?null)throw?new?NullPointerException();int?c?=?ctl.get();//?如果當(dāng)前線程數(shù)少于核心線程數(shù)(corePoolSize),無論核心線程是否忙碌,都創(chuàng)建線程,直到達(dá)到?corePoolSize?為止if?(workerCountOf(c)?<?corePoolSize)?{//?創(chuàng)建線程并將此任務(wù)交給?worker?處理(此時此任務(wù)即?worker?中的?firstTask)if?(addWorker(command,?true))return;c?=?ctl.get();}//?如果線程池處于?RUNNING?狀態(tài),并且線程數(shù)大于?corePoolSize?或者?//?線程數(shù)少于?corePoolSize?但創(chuàng)建線程失敗了,則將任務(wù)丟進?workQueue?中if?(isRunning(c)?&&?workQueue.offer(command))?{int?recheck?=?ctl.get();//?這里需要再次檢查線程池是否處于?RUNNING?狀態(tài),因為在任務(wù)入隊后可能線程池狀態(tài)會發(fā)生變化,(比如調(diào)用了?shutdown?方法等),如果線程狀態(tài)發(fā)生變化了,則移除此任務(wù),執(zhí)行拒絕策略if?(!?isRunning(recheck)?&&?remove(command))reject(command);//?如果線程池在?RUNNING?狀態(tài)下,線程數(shù)為?0,則新建線程加速處理?workQueue?中的任務(wù)else?if?(workerCountOf(recheck)?==?0)addWorker(null,?false);}//?這段邏輯說明線程數(shù)大于?corePoolSize?且任務(wù)入隊失敗了,此時會以最大線程數(shù)(maximumPoolSize)為界來創(chuàng)建線程,如果失敗,說明線程數(shù)超過了?maximumPoolSize,則執(zhí)行拒絕策略else?if?(!addWorker(command,?false))reject(command); }

    從這段代碼中可以看到,創(chuàng)建線程是調(diào)用 addWorker 實現(xiàn)的,在分析 addWorker 之前,有必要簡單提一下 Worker,線程池把每一個執(zhí)行任務(wù)的線程都封裝為 Worker 的形式,取名為 Worker 很形象,線程池的本質(zhì)是生產(chǎn)者-消費者模型,生產(chǎn)者不斷地往 workQueue 中丟 task, workQueue 就像流水線一樣不斷地輸送著任務(wù),而 worker(工人) 不斷地取任務(wù)來執(zhí)行

    那么問題來了,為啥要把線程封裝到 worker 中呢,線程池拿到 task 后直接丟給線程處理或者讓線程自己去 workQueue 中處理不就完了?

    將線程封裝為 worker 主要是為了更好地管理線程的中斷

    來看下 Worker 的定義

    //?此處可以看出?worker?既是一個?Runnable?任務(wù),也實現(xiàn)了?AQS(實際上是用?AQS?實現(xiàn)了一個獨占鎖,這樣由于?worker?運行時會上鎖,執(zhí)行?shutdown,setCorePoolSize,setMaximumPoolSize等方法時會試著中斷線程(interruptIdleWorkers)?,在這個方法中斷方法中會先嘗試獲取?worker?的鎖,如果不成功,說明?worker?在運行中,此時會先讓?worker?執(zhí)行完任務(wù)再關(guān)閉?worker?的線程,實現(xiàn)優(yōu)雅關(guān)閉線程的目的) private?final?class?Workerextends?AbstractQueuedSynchronizerimplements?Runnable{private?static?final?long?serialVersionUID?=?6138294804551838833L;//?實際執(zhí)行任務(wù)的線程final?Thread?thread;//?上文提到,如果當(dāng)前線程數(shù)少于核心線程數(shù),創(chuàng)建線程并將提交的任務(wù)交給?worker?處理處理,此時?firstTask?即為此提交的任務(wù),如果?worker?從?workQueue?中獲取任務(wù),則?firstTask?為空Runnable?firstTask;//?統(tǒng)計完成的任務(wù)數(shù)volatile?long?completedTasks;Worker(Runnable?firstTask)?{//?初始化為?-1,這樣在線程運行前(調(diào)用runWorker)禁止中斷,在?interruptIfStarted()?方法中會判斷?getState()>=0setState(-1);?this.firstTask?=?firstTask;//?根據(jù)線程池的?threadFactory?創(chuàng)建一個線程,將?worker?本身傳給線程(因為?worker?實現(xiàn)了?Runnable?接口)this.thread?=?getThreadFactory().newThread(this);}public?void?run()?{//?thread?啟動后會調(diào)用此方法runWorker(this);}//?1?代表被鎖住了,0?代表未鎖protected?boolean?isHeldExclusively()?{return?getState()?!=?0;}//?嘗試獲取鎖protected?boolean?tryAcquire(int?unused)?{//?從這里可以看出它是一個獨占鎖,因為當(dāng)獲取鎖后,cas?設(shè)置?state?不可能成功,這里我們也能明白上文中將?state?設(shè)置為?-1?的作用,這種情況下永遠(yuǎn)不可能獲取得鎖,而?worker?要被中斷首先必須獲取鎖if?(compareAndSetState(0,?1))?{setExclusiveOwnerThread(Thread.currentThread());return?true;}return?false;}//?嘗試釋放鎖protected?boolean?tryRelease(int?unused)?{setExclusiveOwnerThread(null);setState(0);return?true;}????public?void?lock()????????{?acquire(1);?}public?boolean?tryLock()??{?return?tryAcquire(1);?}public?void?unlock()??????{?release(1);?}public?boolean?isLocked()?{?return?isHeldExclusively();?}//?中斷線程,這個方法會被?shutdowNow?調(diào)用,從中可以看出?shutdownNow?要中斷線程不需要獲取鎖,也就是說如果線程正在運行,照樣會給你中斷掉,所以一般來說我們不用?shutdowNow?來中斷線程,太粗暴了,中斷時線程很可能在執(zhí)行任務(wù),影響任務(wù)執(zhí)行void?interruptIfStarted()?{Thread?t;//?中斷也是有條件的,必須是?state?>=?0?且?t?!=?null?且線程未被中斷//?如果?state?==?-1?,不執(zhí)行中斷,再次明白了為啥上文中?setState(-1)?的意義if?(getState()?>=?0?&&?(t?=?thread)?!=?null?&&?!t.isInterrupted())?{try?{t.interrupt();}?catch?(SecurityException?ignore)?{}}}}

    通過上文對 Worker 類的分析,相信大家不難理解 將線程封裝為 worker 主要是為了更好地管理線程的中斷 這句話。

    理解了 Worker 的意義,我們再來看 addWorker 的方法

    private?boolean?addWorker(Runnable?firstTask,?boolean?core)?{retry:for?(;;)?{int?c?=?ctl.get();//?獲取線程池的狀態(tài)int?rs?=?runStateOf(c);//?如果線程池的狀態(tài)?>=?SHUTDOWN,即為?SHUTDOWN,STOP,TIDYING,TERMINATED?這四個狀態(tài),只有一種情況有可能創(chuàng)建線程,即線程狀態(tài)為?SHUTDOWN,?且隊列非空時,firstTask?==?null?代表創(chuàng)建一個不接收新任務(wù)的線程(此線程會從?workQueue?中獲取任務(wù)再執(zhí)行),這種情況下創(chuàng)建線程是為了加速處理完?workQueue?中的任務(wù)if?(rs?>=?SHUTDOWN?&&!?(rs?==?SHUTDOWN?&&firstTask?==?null?&&!?workQueue.isEmpty()))return?false;for?(;;)?{//?獲取線程數(shù)int?wc?=?workerCountOf(c);//?如果超過了線程池的最大?CAPACITY(5?億多,基本不可能)//?或者?超過了?corePoolSize(core?為?true)?或者?maximumPoolSize(core?為?false)?時//?則返回?falseif?(wc?>=?CAPACITY?||wc?>=?(core???corePoolSize?:?maximumPoolSize))return?false;//?否則?CAS?增加線程的數(shù)量,如果成功跳出雙重循環(huán)if?(compareAndIncrementWorkerCount(c))break?retry;c?=?ctl.get();??//?Re-read?ctl//?如果線程運行狀態(tài)發(fā)生變化,跳到外層循環(huán)繼續(xù)執(zhí)行if?(runStateOf(c)?!=?rs)continue?retry;//?說明是因為?CAS?增加線程數(shù)量失敗所致,繼續(xù)執(zhí)行?retry?的內(nèi)層循環(huán)}}boolean?workerStarted?=?false;boolean?workerAdded?=?false;Worker?w?=?null;try?{//?能執(zhí)行到這里,說明滿足增加?worker?的條件了,所以創(chuàng)建?worker,準(zhǔn)備添加進線程池中執(zhí)行任務(wù)w?=?new?Worker(firstTask);final?Thread?t?=?w.thread;if?(t?!=?null)?{//?加鎖,是因為下文要把?w?添加進?workers?中,?workers?是?HashSet,不是線程安全的,所以需要加鎖予以保證final?ReentrantLock?mainLock?=?this.mainLock;mainLock.lock();try?{//??再次?check?線程池的狀態(tài)以防執(zhí)行到此步時發(fā)生中斷等int?rs?=?runStateOf(ctl.get());//?如果線程池狀態(tài)小于?SHUTDOWN(即為?RUNNING),//?或者狀態(tài)為?SHUTDOWN?但?firstTask?==?null(代表不接收任務(wù),只是創(chuàng)建線程處理?workQueue?中的任務(wù)),則滿足添加?worker?的條件if?(rs?<?SHUTDOWN?||(rs?==?SHUTDOWN?&&?firstTask?==?null))?{//?如果線程已啟動,顯然有問題(因為創(chuàng)建?worker?后,還沒啟動線程呢),拋出異常if?(t.isAlive())?throw?new?IllegalThreadStateException();workers.add(w);int?s?=?workers.size();//?記錄最大的線程池大小以作監(jiān)控之用if?(s?>?largestPoolSize)largestPoolSize?=?s;workerAdded?=?true;}}?finally?{mainLock.unlock();}//?說明往?workers?中添加?worker?成功,此時啟動線程if?(workerAdded)?{t.start();workerStarted?=?true;}}}?finally?{//?添加線程失敗,執(zhí)行?addWorkerFailed?方法,主要做了將?worker?從?workers?中移除,減少線程數(shù),并嘗試著關(guān)閉線程池這樣的操作if?(!?workerStarted)addWorkerFailed(w);}return?workerStarted; }

    從這段代碼我們可以看到多線程下情況的不可預(yù)料性,我們發(fā)現(xiàn)在滿足條件情況下,又對線程狀態(tài)重新進行了 check,以防期間出現(xiàn)中斷等線程池狀態(tài)發(fā)生變更的操作,這也給我們以啟發(fā):多線程環(huán)境下的各種臨界條件一定要考慮到位。

    執(zhí)行 addWorker 創(chuàng)建 worker 成功后,線程開始執(zhí)行了(t.start()),由于在創(chuàng)建 Worker 時,將 Worker ?自己傳給了此線程,所以啟動線程后,會調(diào)用 ?Worker 的 run 方法

    public?void?run()?{runWorker(this); }

    可以看到最終會調(diào)用 ?runWorker 方法,接下來我們來分析下 runWorker 方法

    final?void?runWorker(Worker?w)?{Thread?wt?=?Thread.currentThread();Runnable?task?=?w.firstTask;w.firstTask?=?null;//?unlock?會調(diào)用?tryRelease?方法將?state?設(shè)置成?0,代表允許中斷,允許中斷的條件上文我們在?interruptIfStarted()?中有提過,即?state?>=?0w.unlock();boolean?completedAbruptly?=?true;try?{//?如果在提交任務(wù)時創(chuàng)建了線程,并把任務(wù)丟給此線程,則會先執(zhí)行此?task//?否則從任務(wù)隊列中獲取?task?來執(zhí)行(即?getTask()?方法)while?(task?!=?null?||?(task?=?getTask())?!=?null)?{w.lock();//?如果線程池狀態(tài)為?>=?STOP(即?STOP,TIDYING,TERMINATED?)時,則線程應(yīng)該中斷//?如果線程池狀態(tài)?<?STOP,?線程不應(yīng)該中斷,如果中斷了(Thread.interrupted()?返回?true,并清除標(biāo)志位),再次判斷線程池狀態(tài)(防止在清除標(biāo)志位時執(zhí)行了?shutdownNow()?這樣的方法),如果此時線程池為?STOP,執(zhí)行線程中斷if?((runStateAtLeast(ctl.get(),?STOP)?||(Thread.interrupted()?&&runStateAtLeast(ctl.get(),?STOP)))?&&!wt.isInterrupted())wt.interrupt();try?{//?執(zhí)行任務(wù)前,子類可實現(xiàn)此鉤子方法作為統(tǒng)計之用beforeExecute(wt,?task);Throwable?thrown?=?null;try?{task.run();}?catch?(RuntimeException?x)?{thrown?=?x;?throw?x;}?catch?(Error?x)?{thrown?=?x;?throw?x;}?catch?(Throwable?x)?{thrown?=?x;?throw?new?Error(x);}?finally?{//?執(zhí)行任務(wù)后,子類可實現(xiàn)此鉤子方法作為統(tǒng)計之用afterExecute(task,?thrown);}}?finally?{task?=?null;w.completedTasks++;w.unlock();}}completedAbruptly?=?false;}?finally?{//?如果執(zhí)行到這只有兩種可能,一種是執(zhí)行過程中異常中斷了,一種是隊列里沒有任務(wù)了,從這里可以看出線程沒有核心線程與非核心線程之分,哪個任務(wù)異常了或者正常退出了都會執(zhí)行此方法,此方法會根據(jù)情況將線程數(shù)-1processWorkerExit(w,?completedAbruptly);} }

    來看看 processWorkerExit 方法是咋樣的

    private?void?processWorkerExit(Worker?w,?boolean?completedAbruptly)?{//?如果異常退出,cas?執(zhí)行線程池減?1?操作if?(completedAbruptly)?decrementWorkerCount();final?ReentrantLock?mainLock?=?this.mainLock;mainLock.lock();try?{completedTaskCount?+=?w.completedTasks;//?加鎖確保線程安全地移除?worker?workers.remove(w);}?finally?{mainLock.unlock();}//?woker?既然異常退出,可能線程池狀態(tài)變了(如執(zhí)行?shutdown?等),嘗試著關(guān)閉線程池tryTerminate();int?c?=?ctl.get();//??如果線程池處于?STOP?狀態(tài),則如果?woker?是異常退出的,重新新增一個?woker,如果是正常退出的,在?wokerQueue?為非空的條件下,確保至少有一個線程在運行以執(zhí)行?wokerQueue?中的任務(wù)????if?(runStateLessThan(c,?STOP))?{if?(!completedAbruptly)?{int?min?=?allowCoreThreadTimeOut???0?:?corePoolSize;if?(min?==?0?&&?!?workQueue.isEmpty())min?=?1;if?(workerCountOf(c)?>=?min)return;?//?replacement?not?needed}addWorker(null,?false);} }

    接下來我們分析 woker 從 workQueue 中取任務(wù)的方法 getTask

    private?Runnable?getTask()?{boolean?timedOut?=?false;?//?Did?the?last?poll()?time?out?for?(;;)?{int?c?=?ctl.get();int?rs?=?runStateOf(c);//?如果線程池狀態(tài)至少為?STOP?或者//?線程池狀態(tài)?==?SHUTDOWN?并且任務(wù)隊列是空的//?則減少線程數(shù)量,返回?null,這種情況下上文分析的?runWorker?會執(zhí)行?processWorkerExit?從而讓獲取此?Task?的?woker?退出if?(rs?>=?SHUTDOWN?&&?(rs?>=?STOP?||?workQueue.isEmpty()))?{decrementWorkerCount();return?null;}int?wc?=?workerCountOf(c);//?如果?allowCoreThreadTimeOut?為?true,代表任何線程在?keepAliveTime?時間內(nèi)處于?idle?狀態(tài)都會被回收,如果線程數(shù)大于?corePoolSize,本身在?keepAliveTime?時間內(nèi)處于?idle?狀態(tài)就會被回收boolean?timed?=?allowCoreThreadTimeOut?||?wc?>?corePoolSize;//?worker?應(yīng)該被回收的幾個條件,這個比較簡單,就此略過if?((wc?>?maximumPoolSize?||?(timed?&&?timedOut))&&?(wc?>?1?||?workQueue.isEmpty()))?{if?(compareAndDecrementWorkerCount(c))return?null;continue;}try?{//?阻塞獲取?task,如果在?keepAliveTime?時間內(nèi)未獲取任務(wù),說明超時了,此時?timedOut?為?trueRunnable?r?=?timed??workQueue.poll(keepAliveTime,?TimeUnit.NANOSECONDS)?:workQueue.take();if?(r?!=?null)return?r;timedOut?=?true;}?catch?(InterruptedException?retry)?{timedOut?=?false;}} }

    經(jīng)過以上源碼剖析,相信我們對線程池的工作原理了解得八九不離十了,再來簡單過一下其他一些比較有用的方法,開頭我們提到線程池的監(jiān)控問題,我們看一下可以監(jiān)控哪些指標(biāo)

    • int getCorePoolSize():獲取核心線程數(shù)。

    • int getLargestPoolSize():歷史峰值線程數(shù)。

    • int getMaximumPoolSize():最大線程數(shù)(線程池線程容量)。

    • int getActiveCount():當(dāng)前活躍線程數(shù)

    • int getPoolSize():當(dāng)前線程池中的線程總數(shù)

    • BlockingQueuegetQueue() 當(dāng)前線程池的任務(wù)隊列,據(jù)此可以獲取積壓任務(wù)的總數(shù),getQueue.size()

    監(jiān)控思路也很簡單,開啟一個定時線程 ScheduledThreadPoolExecutor,定期對這些線程池指標(biāo)進行采集,一般會采用一些開源工具如 Grafana + Prometheus + MicroMeter 來實現(xiàn)。

    如何實現(xiàn)核心線程池的預(yù)熱

    使用 ?prestartAllCoreThreads() 方法,這個方法會一次性創(chuàng)建 corePoolSize 個線程,無需等到提交任務(wù)時才創(chuàng)建,提交創(chuàng)建好線程的話,一有任務(wù)提交過來,這些線程就可以立即處理。

    如何實現(xiàn)動態(tài)調(diào)整線程池參數(shù)

    • setCorePoolSize(int corePoolSize) 調(diào)整核心線程池大小

    • setMaximumPoolSize(int maximumPoolSize)

    • setKeepAliveTime() 設(shè)置線程的存活時間

    解答開篇的問題

    其它問題基本都在源碼剖析環(huán)節(jié)回答了,這里簡單說下其他問題

    1、Tomcat 的線程池和 JDK 的線程池實現(xiàn)有啥區(qū)別, Dubbo 中有類似 Tomcat 的線程池實現(xiàn)嗎? Dubbo 中一個叫 EagerThreadPool 的東西,可以看看它的使用說明

    從注釋里可以看出,如果核心線程都處于 busy 狀態(tài),如果有新的請求進來,EagerThreadPool 會選擇先創(chuàng)建線程,而不是將其放入任務(wù)隊列中,這樣可以更快地響應(yīng)這些請求。

    Tomcat 實現(xiàn)也是與此類似的,只不過稍微有所不同,當(dāng) Tomcat 啟動時,會先創(chuàng)建 minSpareThreads 個線程,如果經(jīng)過一段時間收到請求時這些線程都處于忙碌狀態(tài),每次都會以 minSpareThreads 的步長創(chuàng)建線程,本質(zhì)上也是為了更快地響應(yīng)處理請求。具體的源碼可以看它的 ThreadPool 實現(xiàn),這里就不展開了。

    2、我司網(wǎng)關(guān) dubbo 調(diào)用線程池曾經(jīng)出現(xiàn)過這樣的一個問題:壓測時接口可以正常返回,但接口 RT 很高,假設(shè)設(shè)置的核心線程大小為 500,最大線程為 800,緩沖隊列為 5000,你能從這個設(shè)置中發(fā)現(xiàn)出一些問題并對這些參數(shù)進行調(diào)優(yōu)嗎?這個參數(shù)明顯能看出問題來,首先任務(wù)隊列設(shè)置過大,任務(wù)達(dá)到核心線程后,如果再有請求進來會先進入任務(wù)隊列,隊列滿了之后才創(chuàng)建線程,創(chuàng)建線程也是需要不少開銷的,所以我們后來把核心線程設(shè)置成了與最大線程一樣,并且調(diào)用 prestartAllCoreThreads() 來預(yù)熱核心線程,就不用等請求來時再創(chuàng)建線程了。

    線程池的幾個最佳實踐

    1、線程池執(zhí)行的任務(wù)應(yīng)該是互相獨立的,如果互相依賴的話,可能導(dǎo)致死鎖,比如下面這樣的代碼

    ExecutorService?pool?=?Executors.newSingleThreadExecutor(); pool.submit(()?->?{try?{String?qq=pool.submit(()->"QQ").get();System.out.println(qq);}?catch?(Exception?e)?{} });

    2、核心任務(wù)與非核心任務(wù)最好能用多個線程池隔離開來

    曾經(jīng)我們業(yè)務(wù)上就出現(xiàn)這樣的一個故障:突然很多用戶反饋短信收不到了,排查才發(fā)現(xiàn)發(fā)短信是在一個線程池里,而另外的定時腳本也是用的這個線程池來執(zhí)行任務(wù),這個腳本一分鐘可能產(chǎn)生幾百上千條任務(wù),導(dǎo)致發(fā)短信的方法在線程池里基本沒機會執(zhí)行,后來我們用了兩個線程池把發(fā)短信和執(zhí)行腳本隔離開來解決了問題。

    3、添加線程池監(jiān)控,動態(tài)設(shè)置線程池

    如前文所述,線程池的各個參數(shù)很難一次性確定,既然難以確定,又要保證發(fā)現(xiàn)問題后及時解決,我們就需要為線程池增加監(jiān)控,監(jiān)控隊列大小,線程數(shù)量等,我們可以設(shè)置 3 分鐘內(nèi)比如隊列任務(wù)一直都是滿了的話,就觸發(fā)告警,這樣可以提前預(yù)警,如果線上因為線程池參數(shù)設(shè)置不合理而觸發(fā)了降級等操作,可以通過動態(tài)設(shè)置線程池的方式來實時修改核心線程數(shù),最大線程數(shù)等,將問題及時修復(fù)。

    總結(jié)

    本文詳細(xì)剖析了線程池的工作原理,相信大家對其工作機制應(yīng)該有了較深入的了解,也對開頭的幾個問題有了較清楚的認(rèn)識,本質(zhì)上設(shè)置線程池的目的是為了利用有效的資源最大化性能,最小化風(fēng)險,同時線程池的使用本質(zhì)上是為了更好地為用戶服務(wù),據(jù)此也不難明白 Tomcat, Dubbo 要另起爐灶來設(shè)置自己的線程池了。

    最后歡迎大家加我私人微信,一起討論,共同進步,拉你進讀者群,2020 難過,我們一起抱團取暖!

    巨人的肩膀

    • https://dzone.com/articles/how-much-memory-does-a-java-thread-take

    • https://segmentfault.com/a/1190000021047279

    • https://www.cnblogs.com/trust-freedom/p/6681948.html

    • 深入理解線程池 https://tinyurl.com/y675j928

    • 有的線程它死了,于是它變成一道面試題 https://mp.weixin.qq.com/s/wrTVGLDvhE-eb5lhygWEqQ

    • Java 并發(fā)編程實戰(zhàn)

    • Java線程池實現(xiàn)原理及其在美團業(yè)務(wù)中的實踐: https://mp.weixin.qq.com/s/baYuX8aCwQ9PP6k7TDl2Ww

    最后歡迎大家加我好友,拉你進技術(shù)交流群,群里有很多 BAT 的大咖,可以提問,互相交流,內(nèi)推等,進群一起抱團取暖

    巨人的肩膀

    • https://dzone.com/articles/how-much-memory-does-a-java-thread-take

    • https://segmentfault.com/a/1190000021047279

    • https://www.cnblogs.com/trust-freedom/p/6681948.html

    • 深入理解線程池 https://tinyurl.com/y675j928

    • 有的線程它死了,于是它變成一道面試題 https://mp.weixin.qq.com/s/wrTVGLDvhE-eb5lhygWEqQ

    • Java 并發(fā)編程實戰(zhàn)

    • Java線程池實現(xiàn)原理及其在美團業(yè)務(wù)中的實踐: https://mp.weixin.qq.com/s/baYuX8aCwQ9PP6k7TDl2Ww

    • 線程池異常處理詳解,一文搞懂!https://www.cnblogs.com/ncy1/articles/11629933.html

    往期推薦

    23張圖!萬字詳解「鏈表」,從小白到大佬!


    面試官:你說說互斥鎖、自旋鎖、讀寫鎖、悲觀鎖、樂觀鎖的應(yīng)用場景?


    25 張圖,1.4 w字!徹底搞懂分布式事務(wù)原理


    關(guān)注我,每天陪你進步一點點!

    總結(jié)

    以上是生活随笔為你收集整理的2万字,看完这篇才敢说自己真的懂线程池!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    欧美国产日产一区二区 | 又湿又紧又大又爽a视频国产 | 国产成人无码专区 | 国产女主播喷水视频在线观看 | 无码午夜成人1000部免费视频 | 高清无码午夜福利视频 | 日韩精品无码免费一区二区三区 | 性啪啪chinese东北女人 | 97无码免费人妻超级碰碰夜夜 | 成年美女黄网站色大免费视频 | 中文字幕无码乱人伦 | 日本精品人妻无码免费大全 | 欧洲美熟女乱又伦 | 无遮挡国产高潮视频免费观看 | 思思久久99热只有频精品66 | 久久久精品456亚洲影院 | 99久久亚洲精品无码毛片 | 国产成人精品一区二区在线小狼 | 宝宝好涨水快流出来免费视频 | 无码乱肉视频免费大全合集 | 老子影院午夜精品无码 | 国产猛烈高潮尖叫视频免费 | 强辱丰满人妻hd中文字幕 | 少妇厨房愉情理9仑片视频 | 在线观看欧美一区二区三区 | 九九在线中文字幕无码 | 东京一本一道一二三区 | 性欧美videos高清精品 | 乱人伦人妻中文字幕无码久久网 | 在线a亚洲视频播放在线观看 | 国产精品内射视频免费 | 国产成人精品一区二区在线小狼 | 亚洲第一网站男人都懂 | 国产sm调教视频在线观看 | 国产 精品 自在自线 | 久久97精品久久久久久久不卡 | 精品人妻人人做人人爽 | 色 综合 欧美 亚洲 国产 | 麻豆国产人妻欲求不满谁演的 | 中文字幕+乱码+中文字幕一区 | 国产麻豆精品精东影业av网站 | 亚洲熟妇自偷自拍另类 | 日本精品人妻无码免费大全 | 人妻天天爽夜夜爽一区二区 | 精品偷拍一区二区三区在线看 | 99精品无人区乱码1区2区3区 | 精品国产av色一区二区深夜久久 | 免费视频欧美无人区码 | 国精产品一区二区三区 | 久久久精品国产sm最大网站 | 日本精品人妻无码77777 天堂一区人妻无码 | 国产成人精品无码播放 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲欧洲日本无在线码 | 欧美自拍另类欧美综合图片区 | 欧美野外疯狂做受xxxx高潮 | 欧美真人作爱免费视频 | 欧美 日韩 亚洲 在线 | 色诱久久久久综合网ywww | 亚洲伊人久久精品影院 | 特大黑人娇小亚洲女 | 无码人妻少妇伦在线电影 | 国产人妻久久精品二区三区老狼 | 巨爆乳无码视频在线观看 | 日日躁夜夜躁狠狠躁 | 欧美猛少妇色xxxxx | 色婷婷欧美在线播放内射 | 一个人免费观看的www视频 | 又紧又大又爽精品一区二区 | 亚洲一区二区三区无码久久 | 亚洲а∨天堂久久精品2021 | 久久精品国产亚洲精品 | 在线观看国产午夜福利片 | 精品国产乱码久久久久乱码 | 亚洲国产精品毛片av不卡在线 | 老熟女乱子伦 | 激情综合激情五月俺也去 | 鲁大师影院在线观看 | 国产麻豆精品一区二区三区v视界 | 国产日产欧产精品精品app | 久久99精品久久久久久动态图 | 日本高清一区免费中文视频 | 熟女少妇在线视频播放 | 131美女爱做视频 | 国产成人av免费观看 | 久久久国产精品无码免费专区 | 国精品人妻无码一区二区三区蜜柚 | 久久久精品成人免费观看 | 999久久久国产精品消防器材 | 天天燥日日燥 | 午夜免费福利小电影 | 狠狠色丁香久久婷婷综合五月 | 免费人成在线视频无码 | 野外少妇愉情中文字幕 | 亚洲国产高清在线观看视频 | 曰韩无码二三区中文字幕 | 国产精品亚洲五月天高清 | 久久无码中文字幕免费影院蜜桃 | 精品欧美一区二区三区久久久 | 国产一区二区三区精品视频 | 国产综合久久久久鬼色 | 99久久久无码国产精品免费 | 久久久久99精品国产片 | 亚洲s码欧洲m码国产av | 激情五月综合色婷婷一区二区 | 国产精品无码一区二区三区不卡 | 成人性做爰aaa片免费看不忠 | 国产精品久久久久久久影院 | 真人与拘做受免费视频一 | 欧美丰满少妇xxxx性 | 亚洲一区二区观看播放 | 精品 日韩 国产 欧美 视频 | 荫蒂被男人添的好舒服爽免费视频 | 国产精品美女久久久网av | 青青青手机频在线观看 | 在线观看国产午夜福利片 | 丰满人妻一区二区三区免费视频 | 精品久久久无码人妻字幂 | 熟妇女人妻丰满少妇中文字幕 | 国产激情精品一区二区三区 | 亚洲欧美色中文字幕在线 | 性色欲情网站iwww九文堂 | 少妇无码一区二区二三区 | 亚洲精品久久久久avwww潮水 | 波多野结衣一区二区三区av免费 | 日韩精品无码免费一区二区三区 | 97久久精品无码一区二区 | 亚洲精品国产精品乱码视色 | 国产精品久久久久久久9999 | 日本精品高清一区二区 | 小泽玛莉亚一区二区视频在线 | 丰满人妻被黑人猛烈进入 | 精品一区二区三区波多野结衣 | 中文字幕无码人妻少妇免费 | 国精产品一区二区三区 | 亲嘴扒胸摸屁股激烈网站 | 樱花草在线播放免费中文 | 乌克兰少妇性做爰 | 人妻天天爽夜夜爽一区二区 | 一本一道久久综合久久 | 国产sm调教视频在线观看 | 伊人久久大香线焦av综合影院 | 特级做a爰片毛片免费69 | 狠狠cao日日穞夜夜穞av | 正在播放东北夫妻内射 | 日欧一片内射va在线影院 | 亚洲综合无码一区二区三区 | 久久久中文久久久无码 | 亚洲精品一区三区三区在线观看 | 99精品视频在线观看免费 | 精品一区二区三区无码免费视频 | 亚洲午夜久久久影院 | 丁香花在线影院观看在线播放 | 成人精品视频一区二区 | 四虎国产精品免费久久 | 久久国产劲爆∧v内射 | 国产精品香蕉在线观看 | 日韩av无码中文无码电影 | 色婷婷久久一区二区三区麻豆 | 一区二区三区乱码在线 | 欧洲 | 精品人妻人人做人人爽夜夜爽 | 亚洲欧洲中文日韩av乱码 | 老司机亚洲精品影院无码 | 欧洲美熟女乱又伦 | 国产真实夫妇视频 | 欧美 亚洲 国产 另类 | 久久亚洲精品中文字幕无男同 | 国产精品美女久久久 | 国产成人亚洲综合无码 | 夜夜影院未满十八勿进 | 亚洲人成影院在线观看 | 国产精品久久久久久久9999 | 九九热爱视频精品 | 国产精品无码一区二区桃花视频 | 狠狠色欧美亚洲狠狠色www | 亚洲精品一区国产 | 四虎影视成人永久免费观看视频 | 无码人妻av免费一区二区三区 | 国产精品久久久 | 欧美zoozzooz性欧美 | 国产明星裸体无码xxxx视频 | 国产精品亚洲一区二区三区喷水 | 亚洲精品一区二区三区四区五区 | 亚洲国产综合无码一区 | 无码av最新清无码专区吞精 | www国产亚洲精品久久久日本 | 国产精品无码永久免费888 | 99久久久无码国产aaa精品 | 中文精品无码中文字幕无码专区 | 女人被男人爽到呻吟的视频 | 国语自产偷拍精品视频偷 | 亚洲成色www久久网站 | 亚洲综合无码一区二区三区 | 国产色精品久久人妻 | 特级做a爰片毛片免费69 | 国产婷婷色一区二区三区在线 | 久久精品国产亚洲精品 | 亚洲区小说区激情区图片区 | 国产精品福利视频导航 | 300部国产真实乱 | 正在播放老肥熟妇露脸 | 中文字幕av无码一区二区三区电影 | 麻豆国产丝袜白领秘书在线观看 | 日本爽爽爽爽爽爽在线观看免 | 亚洲 日韩 欧美 成人 在线观看 | 成人一区二区免费视频 | 377p欧洲日本亚洲大胆 | 国产午夜福利100集发布 | 国产亚洲精品久久久久久 | 无码国内精品人妻少妇 | 国产免费久久精品国产传媒 | 亚洲中文字幕乱码av波多ji | 在线播放免费人成毛片乱码 | 夜精品a片一区二区三区无码白浆 | 日韩av激情在线观看 | 国产av无码专区亚洲awww | 亚洲精品国产品国语在线观看 | 激情人妻另类人妻伦 | 国产一区二区不卡老阿姨 | 最新国产乱人伦偷精品免费网站 | 久久久久久亚洲精品a片成人 | 精品少妇爆乳无码av无码专区 | 4hu四虎永久在线观看 | 中文精品久久久久人妻不卡 | 亚洲一区二区三区偷拍女厕 | 麻豆人妻少妇精品无码专区 | 99久久精品国产一区二区蜜芽 | 日本丰满护士爆乳xxxx | 久青草影院在线观看国产 | 丰满少妇女裸体bbw | 亚洲 a v无 码免 费 成 人 a v | 成人一区二区免费视频 | 国产精品毛多多水多 | 国产免费久久久久久无码 | 97精品国产97久久久久久免费 | 日本www一道久久久免费榴莲 | 国产麻豆精品精东影业av网站 | 日韩人妻少妇一区二区三区 | 曰本女人与公拘交酡免费视频 | 亚洲成a人片在线观看无码3d | 亚洲经典千人经典日产 | 乱人伦人妻中文字幕无码久久网 | 久久熟妇人妻午夜寂寞影院 | 激情人妻另类人妻伦 | 亚洲日韩av一区二区三区中文 | 国内少妇偷人精品视频 | 久久99精品国产麻豆蜜芽 | 色综合视频一区二区三区 | 国内少妇偷人精品视频免费 | 97精品人妻一区二区三区香蕉 | 国产午夜福利亚洲第一 | 国产亚洲精品久久久久久国模美 | 一本大道伊人av久久综合 | 女人高潮内射99精品 | 久久精品99久久香蕉国产色戒 | 中文字幕人妻无码一区二区三区 | 少妇一晚三次一区二区三区 | 伊人久久大香线蕉av一区二区 | 国产成人综合在线女婷五月99播放 | 久久久精品456亚洲影院 | 亚洲成在人网站无码天堂 | 日产精品高潮呻吟av久久 | 国产成人av免费观看 | 国产亚洲精品久久久久久 | 永久免费观看国产裸体美女 | 国产精品爱久久久久久久 | 国产真人无遮挡作爱免费视频 | 日本乱偷人妻中文字幕 | 亚洲日本一区二区三区在线 | 综合激情五月综合激情五月激情1 | 国产日产欧产精品精品app | 我要看www免费看插插视频 | 粉嫩少妇内射浓精videos | 高清无码午夜福利视频 | 男女猛烈xx00免费视频试看 | 亚洲精品成人福利网站 | 亚洲精品久久久久中文第一幕 | 无码成人精品区在线观看 | 国产内射老熟女aaaa | 亚洲一区二区三区四区 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 久久久久免费看成人影片 | 露脸叫床粗话东北少妇 | 精品成在人线av无码免费看 | 18禁黄网站男男禁片免费观看 | 少妇性俱乐部纵欲狂欢电影 | 人人澡人人妻人人爽人人蜜桃 | 蜜桃av抽搐高潮一区二区 | 日产精品高潮呻吟av久久 | 兔费看少妇性l交大片免费 | 成人无码精品1区2区3区免费看 | 天天综合网天天综合色 | 成人av无码一区二区三区 | 国产亚洲精品久久久ai换 | 欧美老妇交乱视频在线观看 | 熟妇人妻无乱码中文字幕 | 一个人看的www免费视频在线观看 | 国产97人人超碰caoprom | 久久久国产精品无码免费专区 | 中文字幕日产无线码一区 | 3d动漫精品啪啪一区二区中 | 国内少妇偷人精品视频免费 | 中文久久乱码一区二区 | 国产精品自产拍在线观看 | 国产成人无码av片在线观看不卡 | 自拍偷自拍亚洲精品10p | 思思久久99热只有频精品66 | 成人一区二区免费视频 | 久久久成人毛片无码 | 国产人妻人伦精品1国产丝袜 | 精品国产aⅴ无码一区二区 | 亚洲国产av精品一区二区蜜芽 | 久久天天躁夜夜躁狠狠 | 国产香蕉97碰碰久久人人 | 国产精品资源一区二区 | 色婷婷香蕉在线一区二区 | 国产成人无码av片在线观看不卡 | 性生交片免费无码看人 | 初尝人妻少妇中文字幕 | 国产成人精品视频ⅴa片软件竹菊 | 丰满诱人的人妻3 | 中文精品久久久久人妻不卡 | 久久精品国产日本波多野结衣 | 图片区 小说区 区 亚洲五月 | 麻豆蜜桃av蜜臀av色欲av | 俺去俺来也在线www色官网 | 日日橹狠狠爱欧美视频 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 久久综合香蕉国产蜜臀av | 亚洲人成人无码网www国产 | 色婷婷av一区二区三区之红樱桃 | 色婷婷av一区二区三区之红樱桃 | 午夜无码人妻av大片色欲 | 亚洲啪av永久无码精品放毛片 | 欧美肥老太牲交大战 | 久久综合九色综合欧美狠狠 | 亚洲日韩中文字幕在线播放 | 熟女体下毛毛黑森林 | 午夜福利一区二区三区在线观看 | 午夜无码人妻av大片色欲 | 熟妇激情内射com | 国产精品怡红院永久免费 | 久久亚洲国产成人精品性色 | 国产又粗又硬又大爽黄老大爷视 | 思思久久99热只有频精品66 | 日本大香伊一区二区三区 | 国产亚洲人成a在线v网站 | 激情亚洲一区国产精品 | 亚洲欧美日韩国产精品一区二区 | 无码中文字幕色专区 | 日本又色又爽又黄的a片18禁 | 丁香啪啪综合成人亚洲 | 2020久久超碰国产精品最新 | 18黄暴禁片在线观看 | 中文无码伦av中文字幕 | 亚洲伊人久久精品影院 | 天天躁日日躁狠狠躁免费麻豆 | 国产艳妇av在线观看果冻传媒 | 国产深夜福利视频在线 | 成年美女黄网站色大免费视频 | 久久久久久九九精品久 | 天堂在线观看www | 免费无码一区二区三区蜜桃大 | 精品国产精品久久一区免费式 | 久久精品女人天堂av免费观看 | 中文字幕 亚洲精品 第1页 | 精品少妇爆乳无码av无码专区 | 夫妻免费无码v看片 | 国产电影无码午夜在线播放 | 久久久国产精品无码免费专区 | 欧美性黑人极品hd | 成人精品视频一区二区 | 18禁止看的免费污网站 | 99久久人妻精品免费一区 | 一本加勒比波多野结衣 | 老太婆性杂交欧美肥老太 | 97夜夜澡人人爽人人喊中国片 | 丰满少妇熟乱xxxxx视频 | 日本精品高清一区二区 | 亚洲成色www久久网站 | 国产69精品久久久久app下载 | 亚洲国产av美女网站 | 久久久久人妻一区精品色欧美 | 99久久久无码国产aaa精品 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 女人被男人爽到呻吟的视频 | 99久久久无码国产精品免费 | 成人综合网亚洲伊人 | 女人被爽到呻吟gif动态图视看 | 亚洲娇小与黑人巨大交 | 小泽玛莉亚一区二区视频在线 | 亚洲欧洲日本无在线码 | 久久午夜夜伦鲁鲁片无码免费 | 国产高潮视频在线观看 | 亚洲中文字幕在线无码一区二区 | 亚洲色在线无码国产精品不卡 | 小sao货水好多真紧h无码视频 | 女人色极品影院 | 无码纯肉视频在线观看 | 精品aⅴ一区二区三区 | 一本无码人妻在中文字幕免费 | 乌克兰少妇性做爰 | 欧美成人家庭影院 | 亚洲大尺度无码无码专区 | 亚洲国产精品无码一区二区三区 | 国产情侣作爱视频免费观看 | 精品一区二区三区波多野结衣 | 内射爽无广熟女亚洲 | 无码一区二区三区在线观看 | 人人澡人人妻人人爽人人蜜桃 | 欧美丰满少妇xxxx性 | 又粗又大又硬又长又爽 | 国产午夜福利亚洲第一 | 蜜桃视频插满18在线观看 | 亚洲国产精品美女久久久久 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲中文字幕在线无码一区二区 | 日本熟妇浓毛 | 国产香蕉尹人综合在线观看 | 人人妻人人澡人人爽欧美一区 | 色一情一乱一伦一区二区三欧美 | 夫妻免费无码v看片 | 丁香花在线影院观看在线播放 | 日本成熟视频免费视频 | 青青青爽视频在线观看 | 国产成人无码午夜视频在线观看 | 日本乱人伦片中文三区 | 久久伊人色av天堂九九小黄鸭 | 青青青手机频在线观看 | 久久精品成人欧美大片 | 300部国产真实乱 | 高潮毛片无遮挡高清免费 | 亚洲国产av精品一区二区蜜芽 | 亚洲人成网站色7799 | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲国产av美女网站 | 亚洲精品久久久久久一区二区 | 国产艳妇av在线观看果冻传媒 | 内射后入在线观看一区 | 国产深夜福利视频在线 | 日本大乳高潮视频在线观看 | 日本护士毛茸茸高潮 | 亚洲午夜久久久影院 | 人妻少妇被猛烈进入中文字幕 | 2020久久超碰国产精品最新 | 国产又爽又黄又刺激的视频 | 人人妻人人澡人人爽人人精品浪潮 | 午夜精品一区二区三区在线观看 | 高潮毛片无遮挡高清免费视频 | 国内揄拍国内精品少妇国语 | 人人超人人超碰超国产 | 国产精品人人爽人人做我的可爱 | 亚洲自偷自偷在线制服 | 亚洲а∨天堂久久精品2021 | 日韩精品无码免费一区二区三区 | 精品国产一区二区三区av 性色 | 国产在线精品一区二区三区直播 | 日韩精品无码一区二区中文字幕 | 一本久道久久综合婷婷五月 | 亚洲中文字幕成人无码 | 四十如虎的丰满熟妇啪啪 | 特级做a爰片毛片免费69 | 亚洲国产精品无码久久久久高潮 | 少妇性l交大片 | 天天做天天爱天天爽综合网 | 欧美黑人巨大xxxxx | 国产卡一卡二卡三 | 老头边吃奶边弄进去呻吟 | 少妇人妻大乳在线视频 | 老太婆性杂交欧美肥老太 | 成人无码精品1区2区3区免费看 | 国产精品视频免费播放 | 国产精品久久久一区二区三区 | 亚洲成av人片在线观看无码不卡 | 牲欲强的熟妇农村老妇女 | 国产激情精品一区二区三区 | 精品国产国产综合精品 | 久久国产精品_国产精品 | 国产成人精品久久亚洲高清不卡 | 日韩精品成人一区二区三区 | 中文字幕无码热在线视频 | 中文字幕无码日韩专区 | 国产深夜福利视频在线 | 国产精品久久久久久亚洲毛片 | 性做久久久久久久免费看 | 两性色午夜视频免费播放 | 鲁鲁鲁爽爽爽在线视频观看 | 亚洲中文字幕乱码av波多ji | 性色av无码免费一区二区三区 | 国产va免费精品观看 | 东京无码熟妇人妻av在线网址 | 国产成人综合色在线观看网站 | 精品无码av一区二区三区 | www一区二区www免费 | 久久精品国产99久久6动漫 | 国产成人无码区免费内射一片色欲 | 中文字幕av日韩精品一区二区 | 天天摸天天碰天天添 | 国产精品理论片在线观看 | 国产凸凹视频一区二区 | 久久国产精品萌白酱免费 | 欧美人与物videos另类 | 色综合视频一区二区三区 | 久久zyz资源站无码中文动漫 | 久久久精品成人免费观看 | 无码精品人妻一区二区三区av | 好男人www社区 | 国产精品久久久av久久久 | 婷婷综合久久中文字幕蜜桃三电影 | 国产乱人伦av在线无码 | 国产香蕉97碰碰久久人人 | 久久久亚洲欧洲日产国码αv | 成人影院yy111111在线观看 | 99国产精品白浆在线观看免费 | 成人性做爰aaa片免费看 | 色窝窝无码一区二区三区色欲 | 亚洲春色在线视频 | 少妇无码一区二区二三区 | 三上悠亚人妻中文字幕在线 | 欧美猛少妇色xxxxx | 亚洲中文字幕在线无码一区二区 | 亚洲男女内射在线播放 | 无套内谢的新婚少妇国语播放 | 欧美激情综合亚洲一二区 | 国产亚洲精品久久久久久久久动漫 | 装睡被陌生人摸出水好爽 | 国内精品人妻无码久久久影院蜜桃 | 成人试看120秒体验区 | 67194成是人免费无码 | 久久久久亚洲精品男人的天堂 | 久久精品女人天堂av免费观看 | 无码国产激情在线观看 | 日日橹狠狠爱欧美视频 | 高潮毛片无遮挡高清免费视频 | 奇米影视7777久久精品 | 国内揄拍国内精品少妇国语 | 精品无码av一区二区三区 | 国产真实夫妇视频 | 伊人久久大香线蕉av一区二区 | 久精品国产欧美亚洲色aⅴ大片 | 亚洲狠狠色丁香婷婷综合 | 麻豆国产人妻欲求不满 | 极品尤物被啪到呻吟喷水 | 国产97人人超碰caoprom | 狂野欧美性猛xxxx乱大交 | 精品成人av一区二区三区 | 午夜精品久久久久久久 | 国产做国产爱免费视频 | 亚洲综合无码久久精品综合 | 天下第一社区视频www日本 | 少妇厨房愉情理9仑片视频 | 在教室伦流澡到高潮hnp视频 | 无码中文字幕色专区 | 老子影院午夜伦不卡 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲欧洲日本综合aⅴ在线 | 女高中生第一次破苞av | 欧美日韩一区二区免费视频 | 76少妇精品导航 | 亚洲a无码综合a国产av中文 | 99久久婷婷国产综合精品青草免费 | 日本一区二区三区免费高清 | 中文字幕精品av一区二区五区 | 久久99热只有频精品8 | 精品亚洲成av人在线观看 | 久久久www成人免费毛片 | 欧美乱妇无乱码大黄a片 | 人妻有码中文字幕在线 | 午夜无码人妻av大片色欲 | 中文字幕亚洲情99在线 | 在线观看免费人成视频 | 97久久超碰中文字幕 | 久久精品国产大片免费观看 | 亚洲精品成人av在线 | 精品久久久久香蕉网 | 日韩av无码一区二区三区不卡 | 精品人妻中文字幕有码在线 | 三上悠亚人妻中文字幕在线 | 中文字幕无码乱人伦 | 国产色视频一区二区三区 | 久热国产vs视频在线观看 | 亚洲综合无码一区二区三区 | 岛国片人妻三上悠亚 | 麻豆果冻传媒2021精品传媒一区下载 | 国产亚洲tv在线观看 | 亚洲 高清 成人 动漫 | 亚洲精品久久久久avwww潮水 | 亚洲欧美中文字幕5发布 | 强辱丰满人妻hd中文字幕 | 丝袜人妻一区二区三区 | 国产在线无码精品电影网 | 鲁大师影院在线观看 | 亚洲 a v无 码免 费 成 人 a v | 久久成人a毛片免费观看网站 | 少女韩国电视剧在线观看完整 | 国产精品美女久久久久av爽李琼 | 日韩在线不卡免费视频一区 | 西西人体www44rt大胆高清 | 精品久久综合1区2区3区激情 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲aⅴ无码成人网站国产app | 精品无码国产自产拍在线观看蜜 | 国产精品99爱免费视频 | 中文字幕乱妇无码av在线 | 两性色午夜免费视频 | 成在人线av无码免费 | 国产亚洲精品久久久久久久 | 天堂一区人妻无码 | 老熟女重囗味hdxx69 | 亚洲第一网站男人都懂 | 九月婷婷人人澡人人添人人爽 | 国产av剧情md精品麻豆 | 日韩av无码中文无码电影 | 人人妻人人澡人人爽精品欧美 | 女人被男人躁得好爽免费视频 | 人妻中文无码久热丝袜 | 亚洲国产成人a精品不卡在线 | 国产成人人人97超碰超爽8 | 亚洲欧美中文字幕5发布 | 狠狠综合久久久久综合网 | 亚洲色偷偷男人的天堂 | 内射巨臀欧美在线视频 | 人人妻人人澡人人爽人人精品浪潮 | 人人爽人人爽人人片av亚洲 | 无码国产乱人伦偷精品视频 | 国产精品毛片一区二区 | 牲欲强的熟妇农村老妇女视频 | 99久久精品国产一区二区蜜芽 | 亚洲精品国产a久久久久久 | 又大又硬又黄的免费视频 | 无码任你躁久久久久久久 | 亚欧洲精品在线视频免费观看 | 亚洲国产精品久久人人爱 | 亚洲s码欧洲m码国产av | 偷窥日本少妇撒尿chinese | 最近的中文字幕在线看视频 | 亚洲乱码国产乱码精品精 | 国产极品视觉盛宴 | 国精产品一品二品国精品69xx | 无码午夜成人1000部免费视频 | 亲嘴扒胸摸屁股激烈网站 | 国产片av国语在线观看 | 夜夜高潮次次欢爽av女 | av无码久久久久不卡免费网站 | 人人妻人人藻人人爽欧美一区 | 真人与拘做受免费视频 | 伦伦影院午夜理论片 | 无码精品国产va在线观看dvd | 国产精品美女久久久久av爽李琼 | 在线观看欧美一区二区三区 | 波多野结衣av在线观看 | 亚洲精品一区二区三区在线观看 | 色综合久久久无码中文字幕 | 欧美性猛交内射兽交老熟妇 | 亚洲爆乳精品无码一区二区三区 | 欧美精品免费观看二区 | 欧美人与善在线com | 亚洲成av人片天堂网无码】 | 99精品无人区乱码1区2区3区 | 国产人成高清在线视频99最全资源 | 妺妺窝人体色www婷婷 | 亚洲一区二区三区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 亚洲va中文字幕无码久久不卡 | 日韩精品无码一本二本三本色 | 久久久婷婷五月亚洲97号色 | 亚洲中文字幕成人无码 | 欧美35页视频在线观看 | 国产人妻精品一区二区三区 | 久久久久久久人妻无码中文字幕爆 | 精品欧美一区二区三区久久久 | 无套内谢的新婚少妇国语播放 | 国产麻豆精品一区二区三区v视界 | 亚洲色大成网站www | а√天堂www在线天堂小说 | 大地资源网第二页免费观看 | 中文无码精品a∨在线观看不卡 | 永久免费观看国产裸体美女 | 日本精品少妇一区二区三区 | 久久人妻内射无码一区三区 | 亚洲中文字幕av在天堂 | 日日摸夜夜摸狠狠摸婷婷 | 久久综合九色综合97网 | 久久亚洲日韩精品一区二区三区 | 成人性做爰aaa片免费看 | 狠狠综合久久久久综合网 | 亚洲一区二区三区在线观看网站 | 久久久精品人妻久久影视 | 国产精品人妻一区二区三区四 | 国内老熟妇对白xxxxhd | 久久人妻内射无码一区三区 | 乌克兰少妇性做爰 | 无码播放一区二区三区 | 四虎永久在线精品免费网址 | 任你躁国产自任一区二区三区 | 亚洲综合久久一区二区 | 极品尤物被啪到呻吟喷水 | 六十路熟妇乱子伦 | 一本色道久久综合亚洲精品不卡 | 亚洲 a v无 码免 费 成 人 a v | 国产人妻人伦精品 | 性色av无码免费一区二区三区 | 亚洲色欲久久久综合网东京热 | 欧美日韩亚洲国产精品 | 成年美女黄网站色大免费视频 | 久久久久久久人妻无码中文字幕爆 | 国产精品亚洲专区无码不卡 | 精品亚洲韩国一区二区三区 | 亚洲の无码国产の无码影院 | 无码乱肉视频免费大全合集 | 日韩精品无码一区二区中文字幕 | 国产成人一区二区三区在线观看 | 日产精品99久久久久久 | 天堂亚洲2017在线观看 | 亚洲第一无码av无码专区 | 国产乱人伦av在线无码 | 色噜噜亚洲男人的天堂 | 大地资源网第二页免费观看 | 亚洲日韩av一区二区三区四区 | 国产手机在线αⅴ片无码观看 | 国产成人av免费观看 | 最新国产麻豆aⅴ精品无码 | 午夜福利试看120秒体验区 | 国产精品久久福利网站 | 国产午夜视频在线观看 | 东京热无码av男人的天堂 | 精品国产aⅴ无码一区二区 | 天堂在线观看www | av无码不卡在线观看免费 | 亚洲 a v无 码免 费 成 人 a v | 亚洲s色大片在线观看 | 999久久久国产精品消防器材 | 国产无套内射久久久国产 | 亚洲国产av美女网站 | 国产午夜福利亚洲第一 | 国产精品久久久午夜夜伦鲁鲁 | 日本精品少妇一区二区三区 | 欧美日本免费一区二区三区 | 欧美日本免费一区二区三区 | 色五月五月丁香亚洲综合网 | 亚洲熟妇色xxxxx亚洲 | 国产精品a成v人在线播放 | 76少妇精品导航 | 国产精品多人p群无码 | 一二三四在线观看免费视频 | 熟妇人妻激情偷爽文 | 亚洲中文字幕乱码av波多ji | 无码吃奶揉捏奶头高潮视频 | 国产成人综合美国十次 | 亚洲а∨天堂久久精品2021 | 成 人影片 免费观看 | 麻花豆传媒剧国产免费mv在线 | 久久国产劲爆∧v内射 | 精品人妻人人做人人爽夜夜爽 | 精品少妇爆乳无码av无码专区 | 免费国产成人高清在线观看网站 | 亚洲男女内射在线播放 | 东京一本一道一二三区 | 久久精品无码一区二区三区 | 正在播放老肥熟妇露脸 | 亚洲乱码日产精品bd | 欧美性生交xxxxx久久久 | 欧美性猛交内射兽交老熟妇 | 好屌草这里只有精品 | 国产成人综合在线女婷五月99播放 | 一本大道久久东京热无码av | 国产精品多人p群无码 | 国产亚洲精品久久久久久大师 | 对白脏话肉麻粗话av | 少妇性l交大片 | 荫蒂被男人添的好舒服爽免费视频 | 无码国产色欲xxxxx视频 | 全黄性性激高免费视频 | 亚洲人成影院在线观看 | 亚洲 欧美 激情 小说 另类 | 性生交片免费无码看人 | 98国产精品综合一区二区三区 | 久久精品中文字幕大胸 | 在线 国产 欧美 亚洲 天堂 | 日韩在线不卡免费视频一区 | 亚洲性无码av中文字幕 | 亚洲 a v无 码免 费 成 人 a v | 狠狠色丁香久久婷婷综合五月 | 国产手机在线αⅴ片无码观看 | 国产性生大片免费观看性 | 九月婷婷人人澡人人添人人爽 | 一本色道婷婷久久欧美 | 无码人中文字幕 | 欧美日本免费一区二区三区 | 特黄特色大片免费播放器图片 | 国产人成高清在线视频99最全资源 | 日本肉体xxxx裸交 | 国产亚洲精品久久久闺蜜 | аⅴ资源天堂资源库在线 | 免费国产成人高清在线观看网站 | 精品国产av色一区二区深夜久久 | 秋霞成人午夜鲁丝一区二区三区 | 西西人体www44rt大胆高清 | 一本久道久久综合狠狠爱 | 熟妇人妻无码xxx视频 | 欧美性猛交内射兽交老熟妇 | 麻豆蜜桃av蜜臀av色欲av | 波多野结衣一区二区三区av免费 | 性生交片免费无码看人 | 桃花色综合影院 | 色老头在线一区二区三区 | 国产亚洲人成在线播放 | 欧美日韩在线亚洲综合国产人 | 夜夜夜高潮夜夜爽夜夜爰爰 | 天堂亚洲免费视频 | 99久久精品无码一区二区毛片 | 波多野结衣aⅴ在线 | 午夜精品久久久内射近拍高清 | 日韩人妻系列无码专区 | 国产热a欧美热a在线视频 | 亚洲日本一区二区三区在线 | 内射欧美老妇wbb | 国产精品-区区久久久狼 | 国产精品久久久久久亚洲毛片 | 久久午夜无码鲁丝片秋霞 | 亚洲一区二区三区 | 四虎影视成人永久免费观看视频 | 欧美熟妇另类久久久久久多毛 | 在线a亚洲视频播放在线观看 | 伊人久久大香线蕉亚洲 | 欧美激情综合亚洲一二区 | 亚洲另类伦春色综合小说 | 欧美国产亚洲日韩在线二区 | 国产av无码专区亚洲awww | 3d动漫精品啪啪一区二区中 | 国产午夜亚洲精品不卡下载 | 午夜精品一区二区三区的区别 | 人人妻人人澡人人爽欧美一区九九 | 精品国产精品久久一区免费式 | 亚洲の无码国产の无码步美 | 老太婆性杂交欧美肥老太 | 国产精品人人妻人人爽 | 久久国产精品偷任你爽任你 | 亲嘴扒胸摸屁股激烈网站 | 少妇无套内谢久久久久 | 99久久久无码国产精品免费 | 色综合久久中文娱乐网 | 漂亮人妻洗澡被公强 日日躁 | 亚洲中文字幕在线观看 | 欧洲极品少妇 | 成人片黄网站色大片免费观看 | 亚洲欧美国产精品专区久久 | 久在线观看福利视频 | 国产激情无码一区二区 | a在线亚洲男人的天堂 | 成人一区二区免费视频 | 精品无码一区二区三区爱欲 | 国产超级va在线观看视频 | 亚洲一区二区三区播放 | 2019nv天堂香蕉在线观看 | 99精品久久毛片a片 | 国产高潮视频在线观看 | 国产热a欧美热a在线视频 | 国产亚洲日韩欧美另类第八页 | 午夜精品久久久久久久 | 亚洲 a v无 码免 费 成 人 a v | 天天爽夜夜爽夜夜爽 | 性欧美牲交xxxxx视频 | 在线播放亚洲第一字幕 | 曰韩少妇内射免费播放 | 亚洲精品午夜无码电影网 | 亚洲另类伦春色综合小说 | 67194成是人免费无码 | 一二三四在线观看免费视频 | 国产亲子乱弄免费视频 | 国产日产欧产精品精品app | 日本护士毛茸茸高潮 | 99久久精品国产一区二区蜜芽 | 在线观看免费人成视频 | 国产三级精品三级男人的天堂 | 一本色道久久综合狠狠躁 | 久久久久久a亚洲欧洲av冫 | 欧美人与善在线com | 内射欧美老妇wbb | 在线播放亚洲第一字幕 | 久久亚洲精品成人无码 | 久久99精品久久久久婷婷 | 久久久婷婷五月亚洲97号色 | 日本饥渴人妻欲求不满 | 国产极品美女高潮无套在线观看 | 婷婷五月综合激情中文字幕 | 精品欧洲av无码一区二区三区 | 麻豆md0077饥渴少妇 | 国产内射老熟女aaaa | 18黄暴禁片在线观看 | 国产三级久久久精品麻豆三级 | 蜜桃臀无码内射一区二区三区 | 国产亚洲欧美在线专区 | 疯狂三人交性欧美 | 亚洲人成人无码网www国产 | 久久久av男人的天堂 | 2019午夜福利不卡片在线 | 67194成是人免费无码 | 国产精品怡红院永久免费 | 日本精品久久久久中文字幕 | 无码国模国产在线观看 | 欧美人与动性行为视频 | 中文字幕无码视频专区 | 亚洲中文字幕无码中字 | 丰满人妻一区二区三区免费视频 | 亚洲欧洲无卡二区视頻 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 日日碰狠狠躁久久躁蜜桃 | 无码国产乱人伦偷精品视频 | 大肉大捧一进一出好爽视频 | 精品无码一区二区三区的天堂 | 网友自拍区视频精品 | 久久综合九色综合欧美狠狠 | 4hu四虎永久在线观看 | 亚洲国产精品成人久久蜜臀 | 欧美高清在线精品一区 | 老司机亚洲精品影院无码 | 亚洲s码欧洲m码国产av | 一本久久a久久精品vr综合 | 色情久久久av熟女人妻网站 | 精品久久久中文字幕人妻 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 精品偷拍一区二区三区在线看 | 久久久久久久久888 | 午夜嘿嘿嘿影院 | 人人妻人人澡人人爽精品欧美 | 亚洲精品国偷拍自产在线观看蜜桃 | 中文字幕无码免费久久9一区9 | 女人高潮内射99精品 | 四虎永久在线精品免费网址 | 国产精品99爱免费视频 | 无遮无挡爽爽免费视频 | 98国产精品综合一区二区三区 | 无码人妻精品一区二区三区不卡 | 天堂一区人妻无码 | 在线观看欧美一区二区三区 | a国产一区二区免费入口 | 国产人妖乱国产精品人妖 | 国产一区二区三区影院 | 成人无码视频免费播放 | a在线观看免费网站大全 | 精品一区二区三区无码免费视频 | 亚洲国产精品一区二区美利坚 | 亚洲成a人片在线观看日本 | 一本久久a久久精品亚洲 | 人妻aⅴ无码一区二区三区 | 日韩av无码中文无码电影 | 欧美色就是色 | 少妇性荡欲午夜性开放视频剧场 | 国产女主播喷水视频在线观看 | 欧美国产日韩亚洲中文 | 熟妇人妻无码xxx视频 | 欧美 丝袜 自拍 制服 另类 | 草草网站影院白丝内射 | 亚洲呦女专区 | 88国产精品欧美一区二区三区 | 成人亚洲精品久久久久 | 学生妹亚洲一区二区 | 欧美freesex黑人又粗又大 | 亚洲国产欧美国产综合一区 | 少妇无码吹潮 | 久久亚洲日韩精品一区二区三区 | 国产色xx群视频射精 | 国精产品一品二品国精品69xx | 奇米影视7777久久精品 | 国产精品人人爽人人做我的可爱 | 亚洲热妇无码av在线播放 | 99久久亚洲精品无码毛片 | 高潮毛片无遮挡高清免费视频 | 欧美日韩一区二区免费视频 | 无码纯肉视频在线观看 | 欧美日韩综合一区二区三区 | 国产熟女一区二区三区四区五区 | 67194成是人免费无码 | 色偷偷人人澡人人爽人人模 | 亚洲第一网站男人都懂 | 久久亚洲国产成人精品性色 | 午夜丰满少妇性开放视频 | 在线成人www免费观看视频 | 欧美freesex黑人又粗又大 | 2020久久香蕉国产线看观看 | 国産精品久久久久久久 | 99麻豆久久久国产精品免费 | 日本爽爽爽爽爽爽在线观看免 | 300部国产真实乱 | 国产精品办公室沙发 | 亚洲理论电影在线观看 | 国产精品无码mv在线观看 | 亚洲中文字幕成人无码 | 东京一本一道一二三区 | 小泽玛莉亚一区二区视频在线 | 中文无码精品a∨在线观看不卡 | 亚洲男人av天堂午夜在 | 国产人妻大战黑人第1集 | 未满小14洗澡无码视频网站 | 亚洲国产精品无码一区二区三区 | 男女爱爱好爽视频免费看 | 久久久久国色av免费观看性色 | 欧美日韩一区二区综合 | 欧美猛少妇色xxxxx | 成人一区二区免费视频 | 荡女精品导航 | 又黄又爽又色的视频 | 亚洲色无码一区二区三区 | 久久久成人毛片无码 | 人人澡人人妻人人爽人人蜜桃 | 国产97色在线 | 免 | 亚洲中文字幕va福利 | 无码播放一区二区三区 | 精品无码成人片一区二区98 | 精品夜夜澡人妻无码av蜜桃 | 日日摸夜夜摸狠狠摸婷婷 | 日韩亚洲欧美中文高清在线 | 久久久久久久久888 | 夜夜夜高潮夜夜爽夜夜爰爰 | 中国女人内谢69xxxxxa片 | 欧美黑人性暴力猛交喷水 | 国产精品香蕉在线观看 | 国内揄拍国内精品人妻 | 丰满人妻翻云覆雨呻吟视频 | 婷婷丁香六月激情综合啪 | 丰满人妻一区二区三区免费视频 | 天天拍夜夜添久久精品 | 国产色xx群视频射精 | 日本熟妇大屁股人妻 | 国产成人综合在线女婷五月99播放 | 亚洲一区二区三区在线观看网站 | 久久久久久久久蜜桃 | 日本大香伊一区二区三区 | 亚洲精品一区二区三区大桥未久 | 中文字幕人成乱码熟女app | 亚洲爆乳精品无码一区二区三区 | 无码精品国产va在线观看dvd | 中文字幕乱妇无码av在线 | 伊人久久大香线焦av综合影院 | 中文字幕人妻无码一区二区三区 | 人妻有码中文字幕在线 | 国产美女极度色诱视频www | 中文字幕无码日韩专区 | 亚洲一区二区三区在线观看网站 | 小鲜肉自慰网站xnxx | 色窝窝无码一区二区三区色欲 | 国产乡下妇女做爰 | 男女性色大片免费网站 | 久久99精品久久久久久 | 国产精品视频免费播放 | 国产 精品 自在自线 | 性色av无码免费一区二区三区 | 国产免费久久精品国产传媒 | 国产又粗又硬又大爽黄老大爷视 | 成人亚洲精品久久久久软件 | 亚洲va中文字幕无码久久不卡 | 老熟妇仑乱视频一区二区 | 免费国产成人高清在线观看网站 | 青青青爽视频在线观看 | 亚洲精品无码人妻无码 | 成人精品视频一区二区三区尤物 | 婷婷丁香五月天综合东京热 | 爱做久久久久久 | 人人澡人摸人人添 | 日本一区二区三区免费播放 | 国产精品久久久久7777 | 精品国产一区二区三区四区在线看 | 国产欧美精品一区二区三区 | 两性色午夜视频免费播放 | 高潮毛片无遮挡高清免费视频 | 99riav国产精品视频 | 亚洲一区二区三区国产精华液 | 亚洲精品综合一区二区三区在线 | 免费观看的无遮挡av | 国产精品多人p群无码 | 欧美激情一区二区三区成人 | 久久亚洲精品中文字幕无男同 | 久久精品99久久香蕉国产色戒 | 久久人人爽人人人人片 | 熟女少妇人妻中文字幕 | 国产绳艺sm调教室论坛 | 国产在线精品一区二区三区直播 | 麻豆果冻传媒2021精品传媒一区下载 | av无码久久久久不卡免费网站 | 欧美日韩色另类综合 | 成人亚洲精品久久久久 | 国产成人一区二区三区在线观看 | 欧洲欧美人成视频在线 | 亚洲中文字幕无码一久久区 | 国产午夜视频在线观看 | 亚洲国产精品无码久久久久高潮 | 久久人妻内射无码一区三区 | 亚洲欧美日韩成人高清在线一区 | 国产在热线精品视频 | 三上悠亚人妻中文字幕在线 | 99久久99久久免费精品蜜桃 | 亚洲日韩av片在线观看 | 国产xxx69麻豆国语对白 | 国语自产偷拍精品视频偷 | 奇米影视7777久久精品人人爽 | 久久人妻内射无码一区三区 | 伊人色综合久久天天小片 | 精品偷自拍另类在线观看 | 娇妻被黑人粗大高潮白浆 | 中文字幕色婷婷在线视频 | 久久综合香蕉国产蜜臀av | 成人无码精品1区2区3区免费看 | 99久久久国产精品无码免费 | 国产精品美女久久久网av | 99精品国产综合久久久久五月天 | 中文字幕无码热在线视频 | 亚洲乱亚洲乱妇50p | 熟女少妇在线视频播放 | 国产在线一区二区三区四区五区 | av小次郎收藏 | 久久久中文久久久无码 | 精品人妻av区 | 久久久国产精品无码免费专区 | 精品国精品国产自在久国产87 | 国产在线精品一区二区高清不卡 | 中国大陆精品视频xxxx | 久久精品国产99精品亚洲 | 午夜熟女插插xx免费视频 | 欧洲美熟女乱又伦 | 无码吃奶揉捏奶头高潮视频 | 色欲人妻aaaaaaa无码 | 亚洲欧美精品伊人久久 | 亚洲色欲久久久综合网东京热 | 午夜时刻免费入口 | 美女黄网站人色视频免费国产 | 99久久人妻精品免费二区 | 黑人大群体交免费视频 | 狠狠色丁香久久婷婷综合五月 | 无码国产乱人伦偷精品视频 | 免费人成在线观看网站 | 色综合久久久久综合一本到桃花网 | 女人被男人躁得好爽免费视频 | 在线视频网站www色 | 国产农村妇女高潮大叫 | 精品无人国产偷自产在线 | 日日摸日日碰夜夜爽av | 狂野欧美激情性xxxx | 中文亚洲成a人片在线观看 | 亚洲日韩av一区二区三区中文 | 久久亚洲国产成人精品性色 | 国产人成高清在线视频99最全资源 | 午夜福利一区二区三区在线观看 | 激情亚洲一区国产精品 | 性色av无码免费一区二区三区 | 综合激情五月综合激情五月激情1 | 日本xxxx色视频在线观看免费 | 熟妇女人妻丰满少妇中文字幕 | 无遮挡国产高潮视频免费观看 | 亚洲国产精品一区二区美利坚 | 亚洲性无码av中文字幕 | 欧美变态另类xxxx | 欧美人与禽猛交狂配 | v一区无码内射国产 | 亚洲欧美日韩国产精品一区二区 | 中文无码精品a∨在线观看不卡 | 日本熟妇人妻xxxxx人hd | 国产凸凹视频一区二区 | 成人免费视频视频在线观看 免费 | 亚洲成av人综合在线观看 | 撕开奶罩揉吮奶头视频 | 国产69精品久久久久app下载 | 亚洲国产午夜精品理论片 | а√资源新版在线天堂 | av无码久久久久不卡免费网站 | 久激情内射婷内射蜜桃人妖 | 欧美变态另类xxxx | 麻豆国产丝袜白领秘书在线观看 | 国产成人无码午夜视频在线观看 | 中文毛片无遮挡高清免费 | 亚洲精品一区二区三区四区五区 | 欧美成人高清在线播放 | 成人aaa片一区国产精品 | 久久精品人人做人人综合 | 成年美女黄网站色大免费全看 | 成人免费视频一区二区 | 国产无套内射久久久国产 | 国产精品久久久一区二区三区 | 国产av久久久久精东av | 少妇无码一区二区二三区 | 无套内谢的新婚少妇国语播放 | 国产精品久久久久久无码 | 任你躁在线精品免费 | 中文字幕无码免费久久9一区9 | v一区无码内射国产 | 熟妇人妻中文av无码 | 丝袜 中出 制服 人妻 美腿 | 亚洲精品欧美二区三区中文字幕 | 中文字幕av无码一区二区三区电影 | 成人综合网亚洲伊人 | 久久精品女人天堂av免费观看 | 日韩少妇白浆无码系列 | 未满成年国产在线观看 | 免费观看激色视频网站 | 在线欧美精品一区二区三区 | 青草青草久热国产精品 | 亚洲小说图区综合在线 | 中文字幕久久久久人妻 | 中文字幕中文有码在线 | 午夜无码区在线观看 | 欧美丰满老熟妇xxxxx性 | 99久久人妻精品免费一区 | 久久久久国色av免费观看性色 | 国产婷婷色一区二区三区在线 | 久久这里只有精品视频9 | 任你躁在线精品免费 | 国产三级精品三级男人的天堂 | 精品国产一区二区三区四区在线看 | 免费观看激色视频网站 | 少妇人妻av毛片在线看 | 国产综合久久久久鬼色 | 福利一区二区三区视频在线观看 | 精品无码国产自产拍在线观看蜜 | 免费人成在线观看网站 | 亚洲天堂2017无码中文 | 国内少妇偷人精品视频 | 玩弄人妻少妇500系列视频 | 99久久婷婷国产综合精品青草免费 | 俄罗斯老熟妇色xxxx | 久久综合色之久久综合 | 国产精品99爱免费视频 | 成人欧美一区二区三区 | 国产成人一区二区三区在线观看 | 成 人 免费观看网站 | 国产成人无码av一区二区 | 亚洲色在线无码国产精品不卡 | 久久精品99久久香蕉国产色戒 | 国产成人一区二区三区在线观看 | 国产午夜亚洲精品不卡 | 香蕉久久久久久av成人 | 国产亚洲精品久久久久久 | 正在播放东北夫妻内射 | 青青久在线视频免费观看 | 久久99精品久久久久久动态图 | 成人欧美一区二区三区黑人免费 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲日韩av片在线观看 | 成年美女黄网站色大免费全看 | 玩弄人妻少妇500系列视频 | 国精产品一区二区三区 | 亚洲精品国产品国语在线观看 | 亚洲中文字幕成人无码 | 荫蒂被男人添的好舒服爽免费视频 | 中文字幕 人妻熟女 | 日韩人妻无码一区二区三区久久99 | 黑人巨大精品欧美黑寡妇 | 国产人妻人伦精品1国产丝袜 | 啦啦啦www在线观看免费视频 | 亚洲熟悉妇女xxx妇女av | 亚洲国产日韩a在线播放 | 欧美xxxx黑人又粗又长 | 色综合久久88色综合天天 | 亚洲欧美综合区丁香五月小说 | 久久99精品久久久久久动态图 | 亚洲国产精品无码一区二区三区 | 少妇性俱乐部纵欲狂欢电影 | 亚洲gv猛男gv无码男同 | 1000部啪啪未满十八勿入下载 | 欧美成人午夜精品久久久 | 久久久久99精品国产片 | 中文字幕人成乱码熟女app | 日日噜噜噜噜夜夜爽亚洲精品 | aa片在线观看视频在线播放 | 国产乱人无码伦av在线a | 亚洲啪av永久无码精品放毛片 | 大肉大捧一进一出好爽视频 | 亚洲精品久久久久久久久久久 | 亚洲男人av香蕉爽爽爽爽 | 国产精品美女久久久久av爽李琼 | 樱花草在线社区www | 蜜桃视频插满18在线观看 | 少妇激情av一区二区 | 欧美午夜特黄aaaaaa片 | 骚片av蜜桃精品一区 | 一本色道久久综合狠狠躁 | 久久国产自偷自偷免费一区调 | 麻花豆传媒剧国产免费mv在线 | 成人无码精品一区二区三区 | 中文字幕av无码一区二区三区电影 | 久久精品国产99久久6动漫 | 色婷婷香蕉在线一区二区 | 欧美人妻一区二区三区 | 国产 精品 自在自线 | 无码人妻av免费一区二区三区 | 国产国语老龄妇女a片 | 久久精品国产99久久6动漫 | 亚洲日韩av一区二区三区中文 | 国内老熟妇对白xxxxhd | 天堂在线观看www | 黑人粗大猛烈进出高潮视频 | 午夜性刺激在线视频免费 | 亲嘴扒胸摸屁股激烈网站 | 久久国内精品自在自线 | 5858s亚洲色大成网站www | 亚洲第一网站男人都懂 | 欧洲精品码一区二区三区免费看 | 丰满岳乱妇在线观看中字无码 | 麻豆国产人妻欲求不满谁演的 | 男人的天堂2018无码 | 97资源共享在线视频 | 国产内射老熟女aaaa | 老熟妇仑乱视频一区二区 | 国产sm调教视频在线观看 | 99麻豆久久久国产精品免费 | 理论片87福利理论电影 | 俺去俺来也在线www色官网 | 天堂а√在线中文在线 | 婷婷丁香五月天综合东京热 | 日韩人妻无码一区二区三区久久99 | 亚洲成a人片在线观看日本 | 亚洲精品成人av在线 | 久久久成人毛片无码 | 成年女人永久免费看片 | 亚洲熟妇色xxxxx亚洲 | 国产精品无码一区二区三区不卡 | 久久午夜无码鲁丝片秋霞 | 麻花豆传媒剧国产免费mv在线 | 999久久久国产精品消防器材 | 国产成人精品久久亚洲高清不卡 | 国产口爆吞精在线视频 | 久久午夜夜伦鲁鲁片无码免费 | 最近免费中文字幕中文高清百度 | 国产精品无码成人午夜电影 | 日韩欧美成人免费观看 | 亚洲色欲色欲天天天www | 亚洲色欲色欲天天天www | 久久久精品欧美一区二区免费 | 中文字幕无码视频专区 | 98国产精品综合一区二区三区 | 成人亚洲精品久久久久 | 亚洲精品国产精品乱码不卡 | 久久午夜无码鲁丝片午夜精品 | 无码乱肉视频免费大全合集 | 亚洲码国产精品高潮在线 | 亚洲欧美色中文字幕在线 | 婷婷色婷婷开心五月四房播播 | 中文字幕久久久久人妻 | 国产精品第一国产精品 | 99国产精品白浆在线观看免费 | 日本一本二本三区免费 | www国产精品内射老师 | 精品人人妻人人澡人人爽人人 | 在线欧美精品一区二区三区 | 欧美丰满熟妇xxxx性ppx人交 | 国产精品久久久一区二区三区 | 真人与拘做受免费视频一 | 成人无码精品1区2区3区免费看 | 无码人妻av免费一区二区三区 | 精品国产一区av天美传媒 | 99久久精品无码一区二区毛片 | 久久精品人妻少妇一区二区三区 | 成人欧美一区二区三区黑人免费 | 亚洲gv猛男gv无码男同 | 亚洲精品成人av在线 | 少妇太爽了在线观看 | 精品水蜜桃久久久久久久 | 曰韩无码二三区中文字幕 | 欧美丰满老熟妇xxxxx性 | 国产精品第一国产精品 | 国产精品亚洲一区二区三区喷水 | 欧美 日韩 亚洲 在线 | 人人妻人人澡人人爽欧美一区九九 | 亚洲色欲久久久综合网东京热 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产av无码专区亚洲a∨毛片 | 澳门永久av免费网站 | 亚洲无人区一区二区三区 | 国产精品美女久久久久av爽李琼 | 亚洲精品国产精品乱码视色 | 欧美老熟妇乱xxxxx | 国产精品久久久久无码av色戒 | 欧洲精品码一区二区三区免费看 | 大色综合色综合网站 | 国产在线精品一区二区高清不卡 | 人妻体内射精一区二区三四 | 精品亚洲韩国一区二区三区 | 中文精品久久久久人妻不卡 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 97夜夜澡人人双人人人喊 | 人人妻人人澡人人爽人人精品浪潮 | 1000部啪啪未满十八勿入下载 | 亚洲中文无码av永久不收费 | 无码吃奶揉捏奶头高潮视频 | 午夜无码人妻av大片色欲 | 国产精品久久久久影院嫩草 | 少妇无码一区二区二三区 | 骚片av蜜桃精品一区 | 精品人妻人人做人人爽夜夜爽 | 国产成人无码区免费内射一片色欲 | 国产成人无码区免费内射一片色欲 | 国产特级毛片aaaaaaa高清 | 中文字幕人成乱码熟女app | 成人动漫在线观看 | 亚洲色欲久久久综合网东京热 | 日本爽爽爽爽爽爽在线观看免 | 婷婷丁香六月激情综合啪 | 爆乳一区二区三区无码 | 东京一本一道一二三区 | 美女黄网站人色视频免费国产 | 久久精品丝袜高跟鞋 | 国产婷婷色一区二区三区在线 | 亚洲理论电影在线观看 | 国内精品人妻无码久久久影院蜜桃 | 人妻有码中文字幕在线 | 精品乱码久久久久久久 | 免费观看黄网站 | 丰腴饱满的极品熟妇 | 樱花草在线播放免费中文 | av无码久久久久不卡免费网站 | 久久99精品久久久久久动态图 | 成人性做爰aaa片免费看不忠 | 久久久久成人片免费观看蜜芽 | 又黄又爽又色的视频 | 精品国偷自产在线视频 | 一本一道久久综合久久 | 久久99精品久久久久久 | 撕开奶罩揉吮奶头视频 | 高潮毛片无遮挡高清免费 | 男人扒开女人内裤强吻桶进去 | 人妻aⅴ无码一区二区三区 | 精品厕所偷拍各类美女tp嘘嘘 | 婷婷色婷婷开心五月四房播播 | 狠狠综合久久久久综合网 | 久久综合网欧美色妞网 | 亚洲va欧美va天堂v国产综合 | 人妻互换免费中文字幕 | 国产亚洲精品久久久久久国模美 | 精品日本一区二区三区在线观看 | 欧美亚洲日韩国产人成在线播放 | 狠狠色欧美亚洲狠狠色www | 99久久久国产精品无码免费 | 成 人 免费观看网站 | 国产小呦泬泬99精品 | 久久国产精品萌白酱免费 | 成人aaa片一区国产精品 | 久久99久久99精品中文字幕 | 亚洲 日韩 欧美 成人 在线观看 | 狠狠综合久久久久综合网 | 2020久久香蕉国产线看观看 | 久久久国产精品无码免费专区 | 午夜精品一区二区三区的区别 | 在线精品国产一区二区三区 | 久青草影院在线观看国产 | 国产麻豆精品精东影业av网站 | 日本在线高清不卡免费播放 | 丰满妇女强制高潮18xxxx | 欧美亚洲国产一区二区三区 | 国产熟女一区二区三区四区五区 | 无码国产乱人伦偷精品视频 | 97精品国产97久久久久久免费 | 日日摸天天摸爽爽狠狠97 | 日韩人妻无码一区二区三区久久99 | 中文字幕无码免费久久9一区9 | 无码精品国产va在线观看dvd | 麻豆蜜桃av蜜臀av色欲av | 午夜熟女插插xx免费视频 | 熟女少妇人妻中文字幕 | 最新国产乱人伦偷精品免费网站 | 亚洲精品午夜无码电影网 | 亚洲日韩av一区二区三区中文 | 欧美人与动性行为视频 | 久久久av男人的天堂 | 国产亚av手机在线观看 | 激情爆乳一区二区三区 | 亚洲自偷精品视频自拍 | 男人和女人高潮免费网站 | 免费无码午夜福利片69 | 久久综合久久自在自线精品自 | 四虎国产精品一区二区 | 国产精品久久久久影院嫩草 | 国产精品人妻一区二区三区四 | 欧美国产日产一区二区 | 波多野结衣av一区二区全免费观看 | 国产农村妇女高潮大叫 | 性欧美熟妇videofreesex | 免费观看激色视频网站 | 久久亚洲a片com人成 | 女人色极品影院 | 国产成人无码av片在线观看不卡 | 国产精品资源一区二区 | 任你躁在线精品免费 | 亚洲综合伊人久久大杳蕉 | 欧美xxxx黑人又粗又长 | 一本色道久久综合亚洲精品不卡 | 亚洲国产午夜精品理论片 | 国产免费观看黄av片 | 日本免费一区二区三区最新 | 扒开双腿疯狂进出爽爽爽视频 | 一本无码人妻在中文字幕免费 | 乱人伦人妻中文字幕无码久久网 | 亚洲成av人片在线观看无码不卡 | 久久久国产精品无码免费专区 | 国产午夜视频在线观看 | 免费观看又污又黄的网站 | 久久久中文久久久无码 | 久久精品人妻少妇一区二区三区 | 免费人成网站视频在线观看 | 久久精品国产大片免费观看 | 在线观看欧美一区二区三区 | 日韩人妻少妇一区二区三区 | 中文字幕久久久久人妻 | 欧美丰满熟妇xxxx性ppx人交 | 给我免费的视频在线观看 | 又色又爽又黄的美女裸体网站 | 久久人人爽人人人人片 | 亚洲va欧美va天堂v国产综合 | 国产成人精品无码播放 | 成人性做爰aaa片免费看不忠 | 精品 日韩 国产 欧美 视频 | 久久精品成人欧美大片 | 亚洲精品美女久久久久久久 | 特大黑人娇小亚洲女 | 99久久久无码国产精品免费 | 国产人妻精品一区二区三区 | 少妇高潮一区二区三区99 | 国产高潮视频在线观看 | 香港三级日本三级妇三级 | 亚洲成a人片在线观看日本 | 日本欧美一区二区三区乱码 | 国产97在线 | 亚洲 | 中国女人内谢69xxxx | 任你躁国产自任一区二区三区 | а√天堂www在线天堂小说 | 好爽又高潮了毛片免费下载 | 久久久久久av无码免费看大片 | 老头边吃奶边弄进去呻吟 | 国产精华av午夜在线观看 | 野狼第一精品社区 | 无码毛片视频一区二区本码 | 日日天日日夜日日摸 | 国产精品久久久久久亚洲影视内衣 | 色婷婷欧美在线播放内射 | 国产凸凹视频一区二区 | 精品一二三区久久aaa片 | 国产精品丝袜黑色高跟鞋 | 一本久道高清无码视频 | 中文字幕 亚洲精品 第1页 | 在线а√天堂中文官网 | 波多野结衣乳巨码无在线观看 | 久精品国产欧美亚洲色aⅴ大片 | 18无码粉嫩小泬无套在线观看 | 无码人妻精品一区二区三区下载 | 国产精品-区区久久久狼 | 双乳奶水饱满少妇呻吟 | 水蜜桃色314在线观看 | 无码国产激情在线观看 | 亚洲欧洲日本无在线码 | 国产成人一区二区三区别 | 亚洲春色在线视频 | 88国产精品欧美一区二区三区 | 国产在线精品一区二区三区直播 | 麻豆国产丝袜白领秘书在线观看 | 亚洲精品国产第一综合99久久 | 国产真实伦对白全集 | 国产精品无码一区二区桃花视频 | 中文字幕无码日韩欧毛 | 5858s亚洲色大成网站www | 久久综合香蕉国产蜜臀av | 久久国产精品偷任你爽任你 | 欧洲极品少妇 | 亚洲天堂2017无码 | 300部国产真实乱 | 日韩人妻无码一区二区三区久久99 | 中文字幕人成乱码熟女app | 曰韩少妇内射免费播放 | 成人精品一区二区三区中文字幕 | 国产热a欧美热a在线视频 | 男人扒开女人内裤强吻桶进去 | 九月婷婷人人澡人人添人人爽 | 真人与拘做受免费视频一 | 在线а√天堂中文官网 | 夜夜影院未满十八勿进 | 内射巨臀欧美在线视频 | 麻豆国产97在线 | 欧洲 | 久久久精品成人免费观看 | 强伦人妻一区二区三区视频18 | 亚洲国产成人av在线观看 | 国产人妖乱国产精品人妖 | 国内老熟妇对白xxxxhd | 午夜精品久久久久久久 | 国产精品自产拍在线观看 | 成人免费视频一区二区 | 自拍偷自拍亚洲精品被多人伦好爽 | 又黄又爽又色的视频 | 日本精品久久久久中文字幕 | 欧美国产日产一区二区 | 东京无码熟妇人妻av在线网址 | 亚洲国产欧美在线成人 | 亚洲国产成人a精品不卡在线 | 丝袜足控一区二区三区 | 大屁股大乳丰满人妻 | 成人女人看片免费视频放人 | 久久人妻内射无码一区三区 | 亚洲va中文字幕无码久久不卡 | 精品无码一区二区三区的天堂 | 成人无码精品一区二区三区 | 色妞www精品免费视频 | 97无码免费人妻超级碰碰夜夜 | 人妻互换免费中文字幕 | 久久亚洲中文字幕无码 | 精品一区二区三区无码免费视频 | 狠狠色丁香久久婷婷综合五月 | 少妇愉情理伦片bd | 亚洲一区二区三区含羞草 | 免费乱码人妻系列无码专区 | 欧美国产日韩久久mv | 最新国产乱人伦偷精品免费网站 | 国产精品久久久久影院嫩草 | 三级4级全黄60分钟 | 国产精品香蕉在线观看 | www一区二区www免费 | 成人综合网亚洲伊人 | 久久精品中文字幕大胸 | 色窝窝无码一区二区三区色欲 | 国内老熟妇对白xxxxhd | 国产国产精品人在线视 | 澳门永久av免费网站 | 久久久中文久久久无码 | 天海翼激烈高潮到腰振不止 | av无码电影一区二区三区 | 亚洲人成人无码网www国产 | 久久午夜夜伦鲁鲁片无码免费 | 特大黑人娇小亚洲女 | 天天躁夜夜躁狠狠是什么心态 | 国产做国产爱免费视频 | 成年美女黄网站色大免费全看 | 久久精品国产99精品亚洲 | 免费乱码人妻系列无码专区 | 香港三级日本三级妇三级 | 欧美第一黄网免费网站 | 激情人妻另类人妻伦 | 无码吃奶揉捏奶头高潮视频 | 亚洲天堂2017无码中文 | √天堂资源地址中文在线 | 东京热无码av男人的天堂 | 亚洲成av人在线观看网址 | 又黄又爽又色的视频 | 亚洲精品欧美二区三区中文字幕 | 亚洲欧美色中文字幕在线 | 亚洲精品久久久久久久久久久 | аⅴ资源天堂资源库在线 | 欧美精品一区二区精品久久 | a在线观看免费网站大全 | 久久99精品久久久久久动态图 | 波多野结衣高清一区二区三区 | 久久午夜无码鲁丝片 | 青青青爽视频在线观看 | 欧美性猛交内射兽交老熟妇 | 亚洲精品欧美二区三区中文字幕 | 国产精品无码永久免费888 | 久久久精品欧美一区二区免费 | 中文字幕乱妇无码av在线 | 国产精品美女久久久久av爽李琼 | 99麻豆久久久国产精品免费 | 午夜丰满少妇性开放视频 | 久久成人a毛片免费观看网站 | 国产偷抇久久精品a片69 | 无码av中文字幕免费放 | 国产精品va在线播放 | 天天爽夜夜爽夜夜爽 | √8天堂资源地址中文在线 | 日日天日日夜日日摸 | 精品人妻av区 | 欧美国产亚洲日韩在线二区 | 熟女少妇在线视频播放 | 日韩精品久久久肉伦网站 | 乱人伦人妻中文字幕无码久久网 | 天堂在线观看www | 国产三级久久久精品麻豆三级 | 亚洲色偷偷男人的天堂 | 精品人妻人人做人人爽夜夜爽 | 熟女少妇在线视频播放 | 国产麻豆精品一区二区三区v视界 | 亚洲日韩精品欧美一区二区 | 国产精品久久久久久亚洲毛片 | 丰满人妻翻云覆雨呻吟视频 |