3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

深入理解 Java 线程池:ThreadPoolExecutor

發(fā)布時間:2025/3/21 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入理解 Java 线程池:ThreadPoolExecutor 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

線程池介紹

在web開發(fā)中,服務(wù)器需要接受并處理請求,所以會為一個請求來分配一個線程來進行處理。如果每次請求都新創(chuàng)建一個線程的話實現(xiàn)起來非常簡便,但是存在一個問題:

如果并發(fā)的請求數(shù)量非常多,但每個線程執(zhí)行的時間很短,這樣就會頻繁的創(chuàng)建和銷毀線程,如此一來會大大降低系統(tǒng)的效率。可能出現(xiàn)服務(wù)器在為每個請求創(chuàng)建新線程和銷毀線程上花費的時間和消耗的系統(tǒng)資源要比處理實際的用戶請求的時間和資源更多。

那么有沒有一種辦法使執(zhí)行完一個任務(wù),并不被銷毀,而是可以繼續(xù)執(zhí)行其他的任務(wù)呢?

這就是線程池的目的了。線程池為線程生命周期的開銷和資源不足問題提供了解決方案。通過對多個任務(wù)重用線程,線程創(chuàng)建的開銷被分攤到了多個任務(wù)上。

什么時候使用線程池?

  • 單個任務(wù)處理時間比較短
  • 需要處理的任務(wù)數(shù)量很大

使用線程池的好處

引用自?ifeve.com/java-thread…?的說明:

  • 降低資源消耗。通過重復(fù)利用已創(chuàng)建的線程降低線程創(chuàng)建和銷毀造成的消耗。
  • 提高響應(yīng)速度。當(dāng)任務(wù)到達時,任務(wù)可以不需要的等到線程創(chuàng)建就能立即執(zhí)行。
  • 提高線程的可管理性。線程是稀缺資源,如果無限制的創(chuàng)建,不僅會消耗系統(tǒng)資源,還會降低系統(tǒng)的穩(wěn)定性,使用線程池可以進行統(tǒng)一的分配,調(diào)優(yōu)和監(jiān)控。

Java中的線程池是用ThreadPoolExecutor類來實現(xiàn)的. 本文就結(jié)合JDK 1.8對該類的源碼來分析一下這個類內(nèi)部對于線程的創(chuàng)建, 管理以及后臺任務(wù)的調(diào)度等方面的執(zhí)行原理。

先看一下線程池的類圖:


Executor框架接口

Executor框架是一個根據(jù)一組執(zhí)行策略調(diào)用,調(diào)度,執(zhí)行和控制的異步任務(wù)的框架,目的是提供一種將”任務(wù)提交”與”任務(wù)如何運行”分離開來的機制。

J.U.C中有三個Executor接口:

  • Executor:一個運行新任務(wù)的簡單接口;
  • ExecutorService:擴展了Executor接口。添加了一些用來管理執(zhí)行器生命周期和任務(wù)生命周期的方法;
  • ScheduledExecutorService:擴展了ExecutorService。支持Future和定期執(zhí)行任務(wù)。

Executor接口

public interface Executor {void execute(Runnable command); }

Executor接口只有一個execute方法,用來替代通常創(chuàng)建或啟動線程的方法。例如,使用Thread來創(chuàng)建并啟動線程的代碼如下:

Thread t = new Thread(); t.start();

使用Executor來啟動線程執(zhí)行任務(wù)的代碼如下:

Thread t = new Thread(); executor.execute(t);

對于不同的Executor實現(xiàn),execute()方法可能是創(chuàng)建一個新線程并立即啟動,也有可能是使用已有的工作線程來運行傳入的任務(wù),也可能是根據(jù)設(shè)置線程池的容量或者阻塞隊列的容量來決定是否要將傳入的線程放入阻塞隊列中或者拒絕接收傳入的線程。

ExecutorService接口

ExecutorService接口繼承自Executor接口,提供了管理終止的方法,以及可為跟蹤一個或多個異步任務(wù)執(zhí)行狀況而生成 Future 的方法。增加了shutDown(),shutDownNow(),invokeAll(),invokeAny()和submit()等方法。如果需要支持即時關(guān)閉,也就是shutDownNow()方法,則任務(wù)需要正確處理中斷。

ScheduledExecutorService接口

ScheduledExecutorService擴展ExecutorService接口并增加了schedule方法。調(diào)用schedule方法可以在指定的延時后執(zhí)行一個Runnable或者Callable任務(wù)。ScheduledExecutorService接口還定義了按照指定時間間隔定期執(zhí)行任務(wù)的scheduleAtFixedRate()方法和scheduleWithFixedDelay()方法。

ThreadPoolExecutor分析

ThreadPoolExecutor繼承自AbstractExecutorService,也是實現(xiàn)了ExecutorService接口。

幾個重要的字段

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;// runState is stored in the high-order bits private static final int RUNNING = -1 << COUNT_BITS; private static final int SHUTDOWN = 0 << COUNT_BITS; private static final int STOP = 1 << COUNT_BITS; private static final int TIDYING = 2 << COUNT_BITS; private static final int TERMINATED = 3 << COUNT_BITS;

ctl是對線程池的運行狀態(tài)和線程池中有效線程的數(shù)量進行控制的一個字段, 它包含兩部分的信息: 線程池的運行狀態(tài) (runState) 和線程池內(nèi)有效線程的數(shù)量 (workerCount),這里可以看到,使用了Integer類型來保存,高3位保存runState,低29位保存workerCount。COUNT_BITS 就是29,CAPACITY就是1左移29位減1(29個1),這個常量表示workerCount的上限值,大約是5億。

下面再介紹下線程池的運行狀態(tài). 線程池一共有五種狀態(tài), 分別是:

  • RUNNING?:能接受新提交的任務(wù),并且也能處理阻塞隊列中的任務(wù);
  • SHUTDOWN:關(guān)閉狀態(tài),不再接受新提交的任務(wù),但卻可以繼續(xù)處理阻塞隊列中已保存的任務(wù)。在線程池處于 RUNNING 狀態(tài)時,調(diào)用 shutdown()方法會使線程池進入到該狀態(tài)。(finalize() 方法在執(zhí)行過程中也會調(diào)用shutdown()方法進入該狀態(tài));
  • STOP:不能接受新任務(wù),也不處理隊列中的任務(wù),會中斷正在處理任務(wù)的線程。在線程池處于 RUNNING 或 SHUTDOWN 狀態(tài)時,調(diào)用 shutdownNow() 方法會使線程池進入到該狀態(tài);
  • TIDYING:如果所有的任務(wù)都已終止了,workerCount (有效線程數(shù)) 為0,線程池進入該狀態(tài)后會調(diào)用 terminated() 方法進入TERMINATED 狀態(tài)。
  • TERMINATED:在terminated() 方法執(zhí)行完后進入該狀態(tài),默認terminated()方法中什么也沒有做。
    進入TERMINATED的條件如下:
    • 線程池不是RUNNING狀態(tài);
    • 線程池狀態(tài)不是TIDYING狀態(tài)或TERMINATED狀態(tài);
    • 如果線程池狀態(tài)是SHUTDOWN并且workerQueue為空;
    • workerCount為0;
    • 設(shè)置TIDYING狀態(tài)成功。
  • 下圖為線程池的狀態(tài)轉(zhuǎn)換過程:


    ctl相關(guān)方法

    這里還有幾個對ctl進行計算的方法:

    private static int runStateOf(int c) { return c & ~CAPACITY; } private static int workerCountOf(int c) { return c & CAPACITY; } private static int ctlOf(int rs, int wc) { return rs | wc; }
    • runStateOf:獲取運行狀態(tài);
    • workerCountOf:獲取活動線程數(shù);
    • ctlOf:獲取運行狀態(tài)和活動線程數(shù)的值。

    ThreadPoolExecutor構(gòu)造方法

    public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler) {if (corePoolSize < 0 ||maximumPoolSize <= 0 ||maximumPoolSize < corePoolSize ||keepAliveTime < 0)throw new IllegalArgumentException();if (workQueue == null || threadFactory == null || handler == null)throw new NullPointerException();this.corePoolSize = corePoolSize;this.maximumPoolSize = maximumPoolSize;this.workQueue = workQueue;this.keepAliveTime = unit.toNanos(keepAliveTime);this.threadFactory = threadFactory;this.handler = handler; }

    構(gòu)造方法中的字段含義如下:

    • corePoolSize:核心線程數(shù)量,當(dāng)有新任務(wù)在execute()方法提交時,會執(zhí)行以下判斷:

    • 如果運行的線程少于 corePoolSize,則創(chuàng)建新線程來處理任務(wù),即使線程池中的其他線程是空閑的;
    • 如果線程池中的線程數(shù)量大于等于 corePoolSize 且小于 maximumPoolSize,則只有當(dāng)workQueue滿時才創(chuàng)建新的線程去處理任務(wù);
    • 如果設(shè)置的corePoolSize 和 maximumPoolSize相同,則創(chuàng)建的線程池的大小是固定的,這時如果有新任務(wù)提交,若workQueue未滿,則將請求放入workQueue中,等待有空閑的線程去從workQueue中取任務(wù)并處理;
    • 如果運行的線程數(shù)量大于等于maximumPoolSize,這時如果workQueue已經(jīng)滿了,則通過handler所指定的策略來處理任務(wù);
    • 所以,任務(wù)提交時,判斷的順序為 corePoolSize --> workQueue --> maximumPoolSize。

    • maximumPoolSize:最大線程數(shù)量;
    • workQueue:等待隊列,當(dāng)任務(wù)提交時,如果線程池中的線程數(shù)量大于等于corePoolSize的時候,把該任務(wù)封裝成一個Worker對象放入等待隊列;
    • workQueue:保存等待執(zhí)行的任務(wù)的阻塞隊列,當(dāng)提交一個新的任務(wù)到線程池以后, 線程池會根據(jù)當(dāng)前線程池中正在運行著的線程的數(shù)量來決定對該任務(wù)的處理方式,主要有以下幾種處理方式:
    • 直接切換:這種方式常用的隊列是SynchronousQueue,但現(xiàn)在還沒有研究過該隊列,這里暫時還沒法介紹;
    • 使用無界隊列:一般使用基于鏈表的阻塞隊列LinkedBlockingQueue。如果使用這種方式,那么線程池中能夠創(chuàng)建的最大線程數(shù)就是corePoolSize,而maximumPoolSize就不會起作用了(后面也會說到)。當(dāng)線程池中所有的核心線程都是RUNNING狀態(tài)時,這時一個新的任務(wù)提交就會放入等待隊列中。
    • 使用有界隊列:一般使用ArrayBlockingQueue。使用該方式可以將線程池的最大線程數(shù)量限制為maximumPoolSize,這樣能夠降低資源的消耗,但同時這種方式也使得線程池對線程的調(diào)度變得更困難,因為線程池和隊列的容量都是有限的值,所以要想使線程池處理任務(wù)的吞吐率達到一個相對合理的范圍,又想使線程調(diào)度相對簡單,并且還要盡可能的降低線程池對資源的消耗,就需要合理的設(shè)置這兩個數(shù)量。
      • 如果要想降低系統(tǒng)資源的消耗(包括CPU的使用率,操作系統(tǒng)資源的消耗,上下文環(huán)境切換的開銷等), 可以設(shè)置較大的隊列容量和較小的線程池容量, 但這樣也會降低線程處理任務(wù)的吞吐量。
      • 如果提交的任務(wù)經(jīng)常發(fā)生阻塞,那么可以考慮通過調(diào)用 setMaximumPoolSize() 方法來重新設(shè)定線程池的容量。
      • 如果隊列的容量設(shè)置的較小,通常需要將線程池的容量設(shè)置大一點,這樣CPU的使用率會相對的高一些。但如果線程池的容量設(shè)置的過大,則在提交的任務(wù)數(shù)量太多的情況下,并發(fā)量會增加,那么線程之間的調(diào)度就是一個要考慮的問題,因為這樣反而有可能降低處理任務(wù)的吞吐量。
    • keepAliveTime:線程池維護線程所允許的空閑時間。當(dāng)線程池中的線程數(shù)量大于corePoolSize的時候,如果這時沒有新的任務(wù)提交,核心線程外的線程不會立即銷毀,而是會等待,直到等待的時間超過了keepAliveTime;
    • threadFactory:它是ThreadFactory類型的變量,用來創(chuàng)建新線程。默認使用Executors.defaultThreadFactory() 來創(chuàng)建線程。使用默認的ThreadFactory來創(chuàng)建線程時,會使新創(chuàng)建的線程具有相同的NORM_PRIORITY優(yōu)先級并且是非守護線程,同時也設(shè)置了線程的名稱。
    • handler:它是RejectedExecutionHandler類型的變量,表示線程池的飽和策略。如果阻塞隊列滿了并且沒有空閑的線程,這時如果繼續(xù)提交任務(wù),就需要采取一種策略處理該任務(wù)。線程池提供了4種策略:
    • AbortPolicy:直接拋出異常,這是默認策略;
    • CallerRunsPolicy:用調(diào)用者所在的線程來執(zhí)行任務(wù);
    • DiscardOldestPolicy:丟棄阻塞隊列中靠最前的任務(wù),并執(zhí)行當(dāng)前任務(wù);
    • DiscardPolicy:直接丟棄任務(wù);

    execute方法

    execute()方法用來提交任務(wù),代碼如下:

    public void execute(Runnable command) {if (command == null)throw new NullPointerException();/** clt記錄著runState和workerCount*/int c = ctl.get();/** workerCountOf方法取出低29位的值,表示當(dāng)前活動的線程數(shù);* 如果當(dāng)前活動線程數(shù)小于corePoolSize,則新建一個線程放入線程池中;* 并把任務(wù)添加到該線程中。*/if (workerCountOf(c) < corePoolSize) {/** addWorker中的第二個參數(shù)表示限制添加線程的數(shù)量是根據(jù)corePoolSize來判斷還是maximumPoolSize來判斷;* 如果為true,根據(jù)corePoolSize來判斷;* 如果為false,則根據(jù)maximumPoolSize來判斷*/if (addWorker(command, true))return;/** 如果添加失敗,則重新獲取ctl值*/c = ctl.get();}/** 如果當(dāng)前線程池是運行狀態(tài)并且任務(wù)添加到隊列成功*/if (isRunning(c) && workQueue.offer(command)) {// 重新獲取ctl值int recheck = ctl.get();// 再次判斷線程池的運行狀態(tài),如果不是運行狀態(tài),由于之前已經(jīng)把command添加到workQueue中了,// 這時需要移除該command// 執(zhí)行過后通過handler使用拒絕策略對該任務(wù)進行處理,整個方法返回if (! isRunning(recheck) && remove(command))reject(command);/** 獲取線程池中的有效線程數(shù),如果數(shù)量是0,則執(zhí)行addWorker方法* 這里傳入的參數(shù)表示:* 1. 第一個參數(shù)為null,表示在線程池中創(chuàng)建一個線程,但不去啟動;* 2. 第二個參數(shù)為false,將線程池的有限線程數(shù)量的上限設(shè)置為maximumPoolSize,添加線程時根據(jù)maximumPoolSize來判斷;* 如果判斷workerCount大于0,則直接返回,在workQueue中新增的command會在將來的某個時刻被執(zhí)行。*/else if (workerCountOf(recheck) == 0)addWorker(null, false);}/** 如果執(zhí)行到這里,有兩種情況:* 1. 線程池已經(jīng)不是RUNNING狀態(tài);* 2. 線程池是RUNNING狀態(tài),但workerCount >= corePoolSize并且workQueue已滿。* 這時,再次調(diào)用addWorker方法,但第二個參數(shù)傳入為false,將線程池的有限線程數(shù)量的上限設(shè)置為maximumPoolSize;* 如果失敗則拒絕該任務(wù)*/else if (!addWorker(command, false))reject(command); }

    簡單來說,在執(zhí)行execute()方法時如果狀態(tài)一直是RUNNING時,的執(zhí)行過程如下:

  • 如果workerCount < corePoolSize,則創(chuàng)建并啟動一個線程來執(zhí)行新提交的任務(wù);
  • 如果workerCount >= corePoolSize,且線程池內(nèi)的阻塞隊列未滿,則將任務(wù)添加到該阻塞隊列中;
  • 如果workerCount >= corePoolSize && workerCount < maximumPoolSize,且線程池內(nèi)的阻塞隊列已滿,則創(chuàng)建并啟動一個線程來執(zhí)行新提交的任務(wù);
  • 如果workerCount >= maximumPoolSize,并且線程池內(nèi)的阻塞隊列已滿, 則根據(jù)拒絕策略來處理該任務(wù), 默認的處理方式是直接拋異常。
  • 這里要注意一下addWorker(null, false);,也就是創(chuàng)建一個線程,但并沒有傳入任務(wù),因為任務(wù)已經(jīng)被添加到workQueue中了,所以worker在執(zhí)行的時候,會直接從workQueue中獲取任務(wù)。所以,在workerCountOf(recheck) == 0時執(zhí)行addWorker(null, false);也是為了保證線程池在RUNNING狀態(tài)下必須要有一個線程來執(zhí)行任務(wù)。

    execute方法執(zhí)行流程如下:


    addWorker方法

    addWorker方法的主要工作是在線程池中創(chuàng)建一個新的線程并執(zhí)行,firstTask參數(shù) 用于指定新增的線程執(zhí)行的第一個任務(wù),core參數(shù)為true表示在新增線程時會判斷當(dāng)前活動線程數(shù)是否少于corePoolSize,false表示新增線程前需要判斷當(dāng)前活動線程數(shù)是否少于maximumPoolSize,代碼如下:

    private boolean addWorker(Runnable firstTask, boolean core) {retry:for (;;) {int c = ctl.get();// 獲取運行狀態(tài)int rs = runStateOf(c);/** 這個if判斷* 如果rs >= SHUTDOWN,則表示此時不再接收新任務(wù);* 接著判斷以下3個條件,只要有1個不滿足,則返回false:* 1. rs == SHUTDOWN,這時表示關(guān)閉狀態(tài),不再接受新提交的任務(wù),但卻可以繼續(xù)處理阻塞隊列中已保存的任務(wù)* 2. firsTask為空* 3. 阻塞隊列不為空* * 首先考慮rs == SHUTDOWN的情況* 這種情況下不會接受新提交的任務(wù),所以在firstTask不為空的時候會返回false;* 然后,如果firstTask為空,并且workQueue也為空,則返回false,* 因為隊列中已經(jīng)沒有任務(wù)了,不需要再添加線程了*/// Check if queue empty only if necessary.if (rs >= SHUTDOWN &&! (rs == SHUTDOWN &&firstTask == null &&! workQueue.isEmpty()))return false;for (;;) {// 獲取線程數(shù)int wc = workerCountOf(c);// 如果wc超過CAPACITY,也就是ctl的低29位的最大值(二進制是29個1),返回false;// 這里的core是addWorker方法的第二個參數(shù),如果為true表示根據(jù)corePoolSize來比較,// 如果為false則根據(jù)maximumPoolSize來比較。// if (wc >= CAPACITY ||wc >= (core ? corePoolSize : maximumPoolSize))return false;// 嘗試增加workerCount,如果成功,則跳出第一個for循環(huán)if (compareAndIncrementWorkerCount(c))break retry;// 如果增加workerCount失敗,則重新獲取ctl的值c = ctl.get(); // Re-read ctl// 如果當(dāng)前的運行狀態(tài)不等于rs,說明狀態(tài)已被改變,返回第一個for循環(huán)繼續(xù)執(zhí)行if (runStateOf(c) != rs)continue retry;// else CAS failed due to workerCount change; retry inner loop}}boolean workerStarted = false;boolean workerAdded = false;Worker w = null;try {// 根據(jù)firstTask來創(chuàng)建Worker對象w = new Worker(firstTask);// 每一個Worker對象都會創(chuàng)建一個線程final Thread t = w.thread;if (t != null) {final ReentrantLock mainLock = this.mainLock;mainLock.lock();try {// Recheck while holding lock.// Back out on ThreadFactory failure or if// shut down before lock acquired.int rs = runStateOf(ctl.get());// rs < SHUTDOWN表示是RUNNING狀態(tài);// 如果rs是RUNNING狀態(tài)或者rs是SHUTDOWN狀態(tài)并且firstTask為null,向線程池中添加線程。// 因為在SHUTDOWN時不會在添加新的任務(wù),但還是會執(zhí)行workQueue中的任務(wù)if (rs < SHUTDOWN ||(rs == SHUTDOWN && firstTask == null)) {if (t.isAlive()) // precheck that t is startablethrow new IllegalThreadStateException();// workers是一個HashSetworkers.add(w);int s = workers.size();// largestPoolSize記錄著線程池中出現(xiàn)過的最大線程數(shù)量if (s > largestPoolSize)largestPoolSize = s;workerAdded = true;}} finally {mainLock.unlock();}if (workerAdded) {// 啟動線程t.start();workerStarted = true;}}} finally {if (! workerStarted)addWorkerFailed(w);}return workerStarted; }

    注意一下這里的t.start()這個語句,啟動時會調(diào)用Worker類中的run方法,Worker本身實現(xiàn)了Runnable接口,所以一個Worker類型的對象也是一個線程。

    Worker類

    線程池中的每一個線程被封裝成一個Worker對象,ThreadPool維護的其實就是一組Worker對象,看一下Worker的定義:

    private final class Workerextends AbstractQueuedSynchronizerimplements Runnable {/*** This class will never be serialized, but we provide a* serialVersionUID to suppress a javac warning.*/private static final long serialVersionUID = 6138294804551838833L;/** Thread this worker is running in. Null if factory fails. */final Thread thread;/** Initial task to run. Possibly null. */Runnable firstTask;/** Per-thread task counter */volatile long completedTasks;/*** Creates with given first task and thread from ThreadFactory.* @param firstTask the first task (null if none)*/Worker(Runnable firstTask) {setState(-1); // inhibit interrupts until runWorkerthis.firstTask = firstTask;this.thread = getThreadFactory().newThread(this);}/** Delegates main run loop to outer runWorker */public void run() {runWorker(this);}// Lock methods//// The value 0 represents the unlocked state.// The value 1 represents the locked state.protected boolean isHeldExclusively() {return getState() != 0;}protected boolean tryAcquire(int unused) {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(); }void interruptIfStarted() {Thread t;if (getState() >= 0 && (t = thread) != null && !t.isInterrupted()) {try {t.interrupt();} catch (SecurityException ignore) {}}} }

    Worker類繼承了AQS,并實現(xiàn)了Runnable接口,注意其中的firstTask和thread屬性:firstTask用它來保存?zhèn)魅氲娜蝿?wù);thread是在調(diào)用構(gòu)造方法時通過ThreadFactory來創(chuàng)建的線程,是用來處理任務(wù)的線程。

    在調(diào)用構(gòu)造方法時,需要把任務(wù)傳入,這里通過getThreadFactory().newThread(this);來新建一個線程,newThread方法傳入的參數(shù)是this,因為Worker本身繼承了Runnable接口,也就是一個線程,所以一個Worker對象在啟動的時候會調(diào)用Worker類中的run方法。

    Worker繼承了AQS,使用AQS來實現(xiàn)獨占鎖的功能。為什么不使用ReentrantLock來實現(xiàn)呢?可以看到tryAcquire方法,它是不允許重入的,而ReentrantLock是允許重入的:

  • lock方法一旦獲取了獨占鎖,表示當(dāng)前線程正在執(zhí)行任務(wù)中;
  • 如果正在執(zhí)行任務(wù),則不應(yīng)該中斷線程;
  • 如果該線程現(xiàn)在不是獨占鎖的狀態(tài),也就是空閑的狀態(tài),說明它沒有在處理任務(wù),這時可以對該線程進行中斷;
  • 線程池在執(zhí)行shutdown方法或tryTerminate方法時會調(diào)用interruptIdleWorkers方法來中斷空閑的線程,interruptIdleWorkers方法會使用tryLock方法來判斷線程池中的線程是否是空閑狀態(tài);
  • 之所以設(shè)置為不可重入,是因為我們不希望任務(wù)在調(diào)用像setCorePoolSize這樣的線程池控制方法時重新獲取鎖。如果使用ReentrantLock,它是可重入的,這樣如果在任務(wù)中調(diào)用了如setCorePoolSize這類線程池控制的方法,會中斷正在運行的線程。
  • 所以,Worker繼承自AQS,用于判斷線程是否空閑以及是否可以被中斷。

    此外,在構(gòu)造方法中執(zhí)行了setState(-1);,把state變量設(shè)置為-1,為什么這么做呢?是因為AQS中默認的state是0,如果剛創(chuàng)建了一個Worker對象,還沒有執(zhí)行任務(wù)時,這時就不應(yīng)該被中斷,看一下tryAquire方法:

    protected boolean tryAcquire(int unused) {if (compareAndSetState(0, 1)) {setExclusiveOwnerThread(Thread.currentThread());return true;}return false; }

    tryAcquire方法是根據(jù)state是否是0來判斷的,所以,setState(-1);將state設(shè)置為-1是為了禁止在執(zhí)行任務(wù)前對線程進行中斷。

    正因為如此,在runWorker方法中會先調(diào)用Worker對象的unlock方法將state設(shè)置為0.

    runWorker方法

    在Worker類中的run方法調(diào)用了runWorker方法來執(zhí)行任務(wù),runWorker方法的代碼如下:

    final void runWorker(Worker w) {Thread wt = Thread.currentThread();// 獲取第一個任務(wù)Runnable task = w.firstTask;w.firstTask = null;// 允許中斷w.unlock(); // allow interrupts// 是否因為異常退出循環(huán)boolean completedAbruptly = true;try {// 如果task為空,則通過getTask來獲取任務(wù)while (task != null || (task = getTask()) != null) {w.lock();// If pool is stopping, ensure thread is interrupted;// if not, ensure thread is not interrupted. This// requires a recheck in second case to deal with// shutdownNow race while clearing interruptif ((runStateAtLeast(ctl.get(), STOP) ||(Thread.interrupted() &&runStateAtLeast(ctl.get(), STOP))) &&!wt.isInterrupted())wt.interrupt();try {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 {afterExecute(task, thrown);}} finally {task = null;w.completedTasks++;w.unlock();}}completedAbruptly = false;} finally {processWorkerExit(w, completedAbruptly);} }

    這里說明一下第一個if判斷,目的是:

    • 如果線程池正在停止,那么要保證當(dāng)前線程是中斷狀態(tài);
    • 如果不是的話,則要保證當(dāng)前線程不是中斷狀態(tài);

    這里要考慮在執(zhí)行該if語句期間可能也執(zhí)行了shutdownNow方法,shutdownNow方法會把狀態(tài)設(shè)置為STOP,回顧一下STOP狀態(tài):

    不能接受新任務(wù),也不處理隊列中的任務(wù),會中斷正在處理任務(wù)的線程。在線程池處于 RUNNING 或 SHUTDOWN 狀態(tài)時,調(diào)用 shutdownNow() 方法會使線程池進入到該狀態(tài)。

    STOP狀態(tài)要中斷線程池中的所有線程,而這里使用Thread.interrupted()來判斷是否中斷是為了確保在RUNNING或者SHUTDOWN狀態(tài)時線程是非中斷狀態(tài)的,因為Thread.interrupted()方法會復(fù)位中斷的狀態(tài)。

    總結(jié)一下runWorker方法的執(zhí)行過程:

  • while循環(huán)不斷地通過getTask()方法獲取任務(wù);
  • getTask()方法從阻塞隊列中取任務(wù);
  • 如果線程池正在停止,那么要保證當(dāng)前線程是中斷狀態(tài),否則要保證當(dāng)前線程不是中斷狀態(tài);
  • 調(diào)用task.run()執(zhí)行任務(wù);
  • 如果task為null則跳出循環(huán),執(zhí)行processWorkerExit()方法;
  • runWorker方法執(zhí)行完畢,也代表著Worker中的run方法執(zhí)行完畢,銷毀線程。
  • 這里的beforeExecute方法和afterExecute方法在ThreadPoolExecutor類中是空的,留給子類來實現(xiàn)。

    completedAbruptly變量來表示在執(zhí)行任務(wù)過程中是否出現(xiàn)了異常,在processWorkerExit方法中會對該變量的值進行判斷。

    getTask方法

    getTask方法用來從阻塞隊列中取任務(wù),代碼如下:

    private Runnable getTask() {// timeOut變量的值表示上次從阻塞隊列中取任務(wù)時是否超時boolean timedOut = false; // Did the last poll() time out?for (;;) {int c = ctl.get();int rs = runStateOf(c);// Check if queue empty only if necessary./** 如果線程池狀態(tài)rs >= SHUTDOWN,也就是非RUNNING狀態(tài),再進行以下判斷:* 1. rs >= STOP,線程池是否正在stop;* 2. 阻塞隊列是否為空。* 如果以上條件滿足,則將workerCount減1并返回null。* 因為如果當(dāng)前線程池狀態(tài)的值是SHUTDOWN或以上時,不允許再向阻塞隊列中添加任務(wù)。*/if (rs >= SHUTDOWN && (rs >= STOP || workQueue.isEmpty())) {decrementWorkerCount();return null;}int wc = workerCountOf(c);// Are workers subject to culling?// timed變量用于判斷是否需要進行超時控制。// allowCoreThreadTimeOut默認是false,也就是核心線程不允許進行超時;// wc > corePoolSize,表示當(dāng)前線程池中的線程數(shù)量大于核心線程數(shù)量;// 對于超過核心線程數(shù)量的這些線程,需要進行超時控制boolean timed = allowCoreThreadTimeOut || wc > corePoolSize;/** wc > maximumPoolSize的情況是因為可能在此方法執(zhí)行階段同時執(zhí)行了setMaximumPoolSize方法;* timed && timedOut 如果為true,表示當(dāng)前操作需要進行超時控制,并且上次從阻塞隊列中獲取任務(wù)發(fā)生了超時* 接下來判斷,如果有效線程數(shù)量大于1,或者阻塞隊列是空的,那么嘗試將workerCount減1;* 如果減1失敗,則返回重試。* 如果wc == 1時,也就說明當(dāng)前線程是線程池中唯一的一個線程了。*/if ((wc > maximumPoolSize || (timed && timedOut))&& (wc > 1 || workQueue.isEmpty())) {if (compareAndDecrementWorkerCount(c))return null;continue;}try {/** 根據(jù)timed來判斷,如果為true,則通過阻塞隊列的poll方法進行超時控制,如果在keepAliveTime時間內(nèi)沒有獲取到任務(wù),則返回null;* 否則通過take方法,如果這時隊列為空,則take方法會阻塞直到隊列不為空。* */Runnable r = timed ?workQueue.poll(keepAliveTime, TimeUnit.NANOSECONDS) :workQueue.take();if (r != null)return r;// 如果 r == null,說明已經(jīng)超時,timedOut設(shè)置為truetimedOut = true;} catch (InterruptedException retry) {// 如果獲取任務(wù)時當(dāng)前線程發(fā)生了中斷,則設(shè)置timedOut為false并返回循環(huán)重試timedOut = false;}} }

    這里重要的地方是第二個if判斷,目的是控制線程池的有效線程數(shù)量。由上文中的分析可以知道,在執(zhí)行execute方法時,如果當(dāng)前線程池的線程數(shù)量超過了corePoolSize且小于maximumPoolSize,并且workQueue已滿時,則可以增加工作線程,但這時如果超時沒有獲取到任務(wù),也就是timedOut為true的情況,說明workQueue已經(jīng)為空了,也就說明了當(dāng)前線程池中不需要那么多線程來執(zhí)行任務(wù)了,可以把多于corePoolSize數(shù)量的線程銷毀掉,保持線程數(shù)量在corePoolSize即可。

    什么時候會銷毀?當(dāng)然是runWorker方法執(zhí)行完之后,也就是Worker中的run方法執(zhí)行完,由JVM自動回收。

    getTask方法返回null時,在runWorker方法中會跳出while循環(huán),然后會執(zhí)行processWorkerExit方法。

    processWorkerExit方法

    private void processWorkerExit(Worker w, boolean completedAbruptly) {// 如果completedAbruptly值為true,則說明線程執(zhí)行時出現(xiàn)了異常,需要將workerCount減1;// 如果線程執(zhí)行時沒有出現(xiàn)異常,說明在getTask()方法中已經(jīng)已經(jīng)對workerCount進行了減1操作,這里就不必再減了。 if (completedAbruptly) // If abrupt, then workerCount wasn't adjusteddecrementWorkerCount();final ReentrantLock mainLock = this.mainLock;mainLock.lock();try {//統(tǒng)計完成的任務(wù)數(shù)completedTaskCount += w.completedTasks;// 從workers中移除,也就表示著從線程池中移除了一個工作線程workers.remove(w);} finally {mainLock.unlock();}// 根據(jù)線程池狀態(tài)進行判斷是否結(jié)束線程池tryTerminate();int c = ctl.get();/** 當(dāng)線程池是RUNNING或SHUTDOWN狀態(tài)時,如果worker是異常結(jié)束,那么會直接addWorker;* 如果allowCoreThreadTimeOut=true,并且等待隊列有任務(wù),至少保留一個worker;* 如果allowCoreThreadTimeOut=false,workerCount不少于corePoolSize。*/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);} }

    至此,processWorkerExit執(zhí)行完之后,工作線程被銷毀,以上就是整個工作線程的生命周期,從execute方法開始,Worker使用ThreadFactory創(chuàng)建新的工作線程,runWorker通過getTask獲取任務(wù),然后執(zhí)行任務(wù),如果getTask返回null,進入processWorkerExit方法,整個線程結(jié)束,如圖所示:


    tryTerminate方法

    tryTerminate方法根據(jù)線程池狀態(tài)進行判斷是否結(jié)束線程池,代碼如下:

    final void tryTerminate() {for (;;) {int c = ctl.get();/** 當(dāng)前線程池的狀態(tài)為以下幾種情況時,直接返回:* 1. RUNNING,因為還在運行中,不能停止;* 2. TIDYING或TERMINATED,因為線程池中已經(jīng)沒有正在運行的線程了;* 3. SHUTDOWN并且等待隊列非空,這時要執(zhí)行完workQueue中的task;*/if (isRunning(c) ||runStateAtLeast(c, TIDYING) ||(runStateOf(c) == SHUTDOWN && ! workQueue.isEmpty()))return;// 如果線程數(shù)量不為0,則中斷一個空閑的工作線程,并返回if (workerCountOf(c) != 0) { // Eligible to terminateinterruptIdleWorkers(ONLY_ONE);return;}final ReentrantLock mainLock = this.mainLock;mainLock.lock();try {// 這里嘗試設(shè)置狀態(tài)為TIDYING,如果設(shè)置成功,則調(diào)用terminated方法if (ctl.compareAndSet(c, ctlOf(TIDYING, 0))) {try {// terminated方法默認什么都不做,留給子類實現(xiàn)terminated();} finally {// 設(shè)置狀態(tài)為TERMINATEDctl.set(ctlOf(TERMINATED, 0));termination.signalAll();}return;}} finally {mainLock.unlock();}// else retry on failed CAS} }

    shutdown方法

    shutdown方法要將線程池切換到SHUTDOWN狀態(tài),并調(diào)用interruptIdleWorkers方法請求中斷所有空閑的worker,最后調(diào)用tryTerminate嘗試結(jié)束線程池。

    public void shutdown() {final ReentrantLock mainLock = this.mainLock;mainLock.lock();try {// 安全策略判斷checkShutdownAccess();// 切換狀態(tài)為SHUTDOWNadvanceRunState(SHUTDOWN);// 中斷空閑線程interruptIdleWorkers();onShutdown(); // hook for ScheduledThreadPoolExecutor} finally {mainLock.unlock();}// 嘗試結(jié)束線程池tryTerminate(); }

    這里思考一個問題:在runWorker方法中,執(zhí)行任務(wù)時對Worker對象w進行了lock操作,為什么要在執(zhí)行任務(wù)的時候?qū)γ總€工作線程都加鎖呢?

    下面仔細分析一下:

    • 在getTask方法中,如果這時線程池的狀態(tài)是SHUTDOWN并且workQueue為空,那么就應(yīng)該返回null來結(jié)束這個工作線程,而使線程池進入SHUTDOWN狀態(tài)需要調(diào)用shutdown方法;
    • shutdown方法會調(diào)用interruptIdleWorkers來中斷空閑的線程,interruptIdleWorkers持有mainLock,會遍歷workers來逐個判斷工作線程是否空閑。但getTask方法中沒有mainLock;
    • 在getTask中,如果判斷當(dāng)前線程池狀態(tài)是RUNNING,并且阻塞隊列為空,那么會調(diào)用workQueue.take()進行阻塞;
    • 如果在判斷當(dāng)前線程池狀態(tài)是RUNNING后,這時調(diào)用了shutdown方法把狀態(tài)改為了SHUTDOWN,這時如果不進行中斷,那么當(dāng)前的工作線程在調(diào)用了workQueue.take()后會一直阻塞而不會被銷毀,因為在SHUTDOWN狀態(tài)下不允許再有新的任務(wù)添加到workQueue中,這樣一來線程池永遠都關(guān)閉不了了;
    • 由上可知,shutdown方法與getTask方法(從隊列中獲取任務(wù)時)存在競態(tài)條件;
    • 解決這一問題就需要用到線程的中斷,也就是為什么要用interruptIdleWorkers方法。在調(diào)用workQueue.take()時,如果發(fā)現(xiàn)當(dāng)前線程在執(zhí)行之前或者執(zhí)行期間是中斷狀態(tài),則會拋出InterruptedException,解除阻塞的狀態(tài);
    • 但是要中斷工作線程,還要判斷工作線程是否是空閑的,如果工作線程正在處理任務(wù),就不應(yīng)該發(fā)生中斷;
    • 所以Worker繼承自AQS,在工作線程處理任務(wù)時會進行l(wèi)ock,interruptIdleWorkers在進行中斷時會使用tryLock來判斷該工作線程是否正在處理任務(wù),如果tryLock返回true,說明該工作線程當(dāng)前未執(zhí)行任務(wù),這時才可以被中斷。

    下面就來分析一下interruptIdleWorkers方法。

    interruptIdleWorkers方法

    private void interruptIdleWorkers() {interruptIdleWorkers(false); }private void interruptIdleWorkers(boolean onlyOne) {final ReentrantLock mainLock = this.mainLock;mainLock.lock();try {for (Worker w : workers) {Thread t = w.thread;if (!t.isInterrupted() && w.tryLock()) {try {t.interrupt();} catch (SecurityException ignore) {} finally {w.unlock();}}if (onlyOne)break;}} finally {mainLock.unlock();} }

    interruptIdleWorkers遍歷workers中所有的工作線程,若線程沒有被中斷tryLock成功,就中斷該線程。

    為什么需要持有mainLock?因為workers是HashSet類型的,不能保證線程安全。

    shutdownNow方法

    public List<Runnable> shutdownNow() {List<Runnable> tasks;final ReentrantLock mainLock = this.mainLock;mainLock.lock();try {checkShutdownAccess();advanceRunState(STOP);// 中斷所有工作線程,無論是否空閑interruptWorkers();// 取出隊列中沒有被執(zhí)行的任務(wù)tasks = drainQueue();} finally {mainLock.unlock();}tryTerminate();return tasks; }

    shutdownNow方法與shutdown方法類似,不同的地方在于:

  • 設(shè)置狀態(tài)為STOP;
  • 中斷所有工作線程,無論是否是空閑的;
  • 取出阻塞隊列中沒有被執(zhí)行的任務(wù)并返回。
  • shutdownNow方法執(zhí)行完之后調(diào)用tryTerminate方法,該方法在上文已經(jīng)分析過了,目的就是使線程池的狀態(tài)設(shè)置為TERMINATED。

    線程池的監(jiān)控

    通過線程池提供的參數(shù)進行監(jiān)控。線程池里有一些屬性在監(jiān)控線程池的時候可以使用

    • getTaskCount:線程池已經(jīng)執(zhí)行的和未執(zhí)行的任務(wù)總數(shù);
    • getCompletedTaskCount:線程池已完成的任務(wù)數(shù)量,該值小于等于taskCount;
    • getLargestPoolSize:線程池曾經(jīng)創(chuàng)建過的最大線程數(shù)量。通過這個數(shù)據(jù)可以知道線程池是否滿過,也就是達到了maximumPoolSize;
    • getPoolSize:線程池當(dāng)前的線程數(shù)量;
    • getActiveCount:當(dāng)前線程池中正在執(zhí)行任務(wù)的線程數(shù)量。

    通過這些方法,可以對線程池進行監(jiān)控,在ThreadPoolExecutor類中提供了幾個空方法,如beforeExecute方法,afterExecute方法和terminated方法,可以擴展這些方法在執(zhí)行前或執(zhí)行后增加一些新的操作,例如統(tǒng)計線程池的執(zhí)行任務(wù)的時間等,可以繼承自ThreadPoolExecutor來進行擴展。

    總結(jié)

    本文比較詳細的分析了線程池的工作流程,總體來說有如下幾個內(nèi)容:

    • 分析了線程的創(chuàng)建,任務(wù)的提交,狀態(tài)的轉(zhuǎn)換以及線程池的關(guān)閉;
    • 這里通過execute方法來展開線程池的工作流程,execute方法通過corePoolSize,maximumPoolSize以及阻塞隊列的大小來判斷決定傳入的任務(wù)應(yīng)該被立即執(zhí)行,還是應(yīng)該添加到阻塞隊列中,還是應(yīng)該拒絕任務(wù)。
    • 介紹了線程池關(guān)閉時的過程,也分析了shutdown方法與getTask方法存在競態(tài)條件;
    • 在獲取任務(wù)時,要通過線程池的狀態(tài)來判斷應(yīng)該結(jié)束工作線程還是阻塞線程等待新的任務(wù),也解釋了為什么關(guān)閉線程池時要中斷工作線程以及為什么每一個worker都需要lock。

    在向線程池提交任務(wù)時,除了execute方法,還有一個submit方法,submit方法會返回一個Future對象用于獲取返回值,有關(guān)Future和Callable請自行了解一下相關(guān)的文章,這里就不介紹了。

    from:?https://juejin.im/entry/58fada5d570c350058d3aaad

    總結(jié)

    以上是生活随笔為你收集整理的深入理解 Java 线程池:ThreadPoolExecutor的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    久久国产精品_国产精品 | 中文字幕乱码亚洲无线三区 | 国产免费久久精品国产传媒 | 一本加勒比波多野结衣 | 天堂无码人妻精品一区二区三区 | 国产亚洲视频中文字幕97精品 | 国内精品久久久久久中文字幕 | 久久久久免费精品国产 | 亚洲欧美综合区丁香五月小说 | 欧美老人巨大xxxx做受 | 我要看www免费看插插视频 | 亚洲午夜久久久影院 | 精品久久综合1区2区3区激情 | 亚洲自偷精品视频自拍 | 一本久道久久综合婷婷五月 | 亚洲成a人片在线观看无码 | 东京热一精品无码av | 国产精品.xx视频.xxtv | 色综合久久中文娱乐网 | 久久视频在线观看精品 | 又湿又紧又大又爽a视频国产 | 精品欧美一区二区三区久久久 | 亚洲综合色区中文字幕 | 欧美zoozzooz性欧美 | 欧美老妇交乱视频在线观看 | 漂亮人妻洗澡被公强 日日躁 | 一个人看的视频www在线 | 国产精品亚洲专区无码不卡 | 国产成人无码专区 | av在线亚洲欧洲日产一区二区 | 精品国产成人一区二区三区 | 欧美熟妇另类久久久久久多毛 | 99久久精品国产一区二区蜜芽 | 人妻aⅴ无码一区二区三区 | 无套内谢的新婚少妇国语播放 | 婷婷丁香六月激情综合啪 | 国产亚洲精品精品国产亚洲综合 | 中文精品久久久久人妻不卡 | 最近免费中文字幕中文高清百度 | 亚洲中文字幕无码一久久区 | 在线播放免费人成毛片乱码 | 国产乱码精品一品二品 | 天天摸天天碰天天添 | 东北女人啪啪对白 | 荫蒂被男人添的好舒服爽免费视频 | 欧美人与禽zoz0性伦交 | 天堂无码人妻精品一区二区三区 | 成人女人看片免费视频放人 | 国产av一区二区精品久久凹凸 | 无码人妻丰满熟妇区五十路百度 | 国产偷国产偷精品高清尤物 | 中文字幕无码免费久久9一区9 | 国产精品久久久一区二区三区 | 装睡被陌生人摸出水好爽 | 精品国产一区二区三区四区在线看 | 麻花豆传媒剧国产免费mv在线 | 国产成人综合色在线观看网站 | 夜夜影院未满十八勿进 | 日韩精品久久久肉伦网站 | 成年女人永久免费看片 | 四虎4hu永久免费 | 一本色道久久综合亚洲精品不卡 | www国产亚洲精品久久久日本 | 18无码粉嫩小泬无套在线观看 | 精品国产aⅴ无码一区二区 | 在线观看国产午夜福利片 | 国产av一区二区精品久久凹凸 | 久久无码专区国产精品s | 野狼第一精品社区 | 久久久亚洲欧洲日产国码αv | 国产成人综合在线女婷五月99播放 | 超碰97人人做人人爱少妇 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产又爽又猛又粗的视频a片 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 丰满护士巨好爽好大乳 | 免费无码的av片在线观看 | 乱人伦人妻中文字幕无码 | 又紧又大又爽精品一区二区 | 亚洲日本va中文字幕 | 真人与拘做受免费视频 | 精品国产aⅴ无码一区二区 | 国产日产欧产精品精品app | 大乳丰满人妻中文字幕日本 | 亚洲国产av精品一区二区蜜芽 | 亚洲一区二区三区 | 成人试看120秒体验区 | 人人爽人人澡人人高潮 | 国产人成高清在线视频99最全资源 | 性色欲情网站iwww九文堂 | 人妻熟女一区 | 色综合天天综合狠狠爱 | 免费乱码人妻系列无码专区 | 久激情内射婷内射蜜桃人妖 | 亚洲精品无码人妻无码 | 午夜免费福利小电影 | 国产精品久久久一区二区三区 | 国内少妇偷人精品视频免费 | 性生交片免费无码看人 | 一本精品99久久精品77 | 国产无遮挡又黄又爽又色 | 亚洲 a v无 码免 费 成 人 a v | 亚洲精品无码国产 | 自拍偷自拍亚洲精品被多人伦好爽 | 天天躁夜夜躁狠狠是什么心态 | 性色av无码免费一区二区三区 | 玩弄人妻少妇500系列视频 | 亚洲成a人一区二区三区 | 免费视频欧美无人区码 | 久久久精品成人免费观看 | 久久久av男人的天堂 | 少妇人妻大乳在线视频 | 亚洲精品久久久久久一区二区 | 国产区女主播在线观看 | 精品久久久久香蕉网 | 无码午夜成人1000部免费视频 | 色婷婷久久一区二区三区麻豆 | 中文亚洲成a人片在线观看 | 亚洲一区二区三区国产精华液 | 欧美人与禽zoz0性伦交 | 国产日产欧产精品精品app | 人妻少妇精品视频专区 | 久久国产精品_国产精品 | 人妻夜夜爽天天爽三区 | 亚洲熟妇色xxxxx欧美老妇y | 天下第一社区视频www日本 | 2019午夜福利不卡片在线 | 国产精品久久久午夜夜伦鲁鲁 | 久久zyz资源站无码中文动漫 | 波多野结衣av在线观看 | 天堂一区人妻无码 | 中文字幕av无码一区二区三区电影 | 丰满少妇女裸体bbw | 午夜精品久久久久久久 | 精品偷自拍另类在线观看 | 又大又黄又粗又爽的免费视频 | 国产欧美亚洲精品a | 成人免费视频一区二区 | 国产精品亚洲五月天高清 | 久久人妻内射无码一区三区 | 精品人妻av区 | 日本高清一区免费中文视频 | 欧美肥老太牲交大战 | 香蕉久久久久久av成人 | 激情五月综合色婷婷一区二区 | 丁香花在线影院观看在线播放 | 欧美丰满老熟妇xxxxx性 | 亚洲 另类 在线 欧美 制服 | 日本肉体xxxx裸交 | 欧美兽交xxxx×视频 | 日产国产精品亚洲系列 | 婷婷色婷婷开心五月四房播播 | 国产成人精品无码播放 | 国产精品久久国产精品99 | 日本熟妇乱子伦xxxx | 欧美日韩久久久精品a片 | 中文字幕乱妇无码av在线 | 黑人大群体交免费视频 | 国内精品九九久久久精品 | 中文精品无码中文字幕无码专区 | 荫蒂被男人添的好舒服爽免费视频 | 日韩精品无码一区二区中文字幕 | 亚洲国产日韩a在线播放 | 蜜臀av在线播放 久久综合激激的五月天 | 激情综合激情五月俺也去 | 99精品无人区乱码1区2区3区 | 亚洲欧美综合区丁香五月小说 | 久久精品国产精品国产精品污 | 国产精华av午夜在线观看 | 国产成人精品久久亚洲高清不卡 | 极品尤物被啪到呻吟喷水 | 捆绑白丝粉色jk震动捧喷白浆 | 久久精品国产亚洲精品 | 熟妇女人妻丰满少妇中文字幕 | 99久久久无码国产精品免费 | 国内少妇偷人精品视频免费 | 久久久久亚洲精品中文字幕 | 男女猛烈xx00免费视频试看 | av无码不卡在线观看免费 | 大胆欧美熟妇xx | 精品国产一区二区三区av 性色 | 无码福利日韩神码福利片 | 久久五月精品中文字幕 | 精品国产福利一区二区 | 国产性生大片免费观看性 | 国产午夜精品一区二区三区嫩草 | www国产精品内射老师 | 国产激情无码一区二区app | 内射巨臀欧美在线视频 | 麻豆国产人妻欲求不满 | 久久视频在线观看精品 | 亚洲欧洲日本无在线码 | 少妇被黑人到高潮喷出白浆 | 日韩 欧美 动漫 国产 制服 | 国产精品.xx视频.xxtv | 亚洲成a人片在线观看日本 | 天天拍夜夜添久久精品大 | 六十路熟妇乱子伦 | 久久成人a毛片免费观看网站 | 激情综合激情五月俺也去 | 中文久久乱码一区二区 | 国产深夜福利视频在线 | 青草青草久热国产精品 | 日韩av激情在线观看 | 牲交欧美兽交欧美 | 亚洲人成无码网www | 97精品国产97久久久久久免费 | 国产艳妇av在线观看果冻传媒 | 蜜桃臀无码内射一区二区三区 | 日韩人妻无码一区二区三区久久99 | 欧美野外疯狂做受xxxx高潮 | 亚洲精品中文字幕久久久久 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲精品国偷拍自产在线麻豆 | 欧美喷潮久久久xxxxx | 蜜桃无码一区二区三区 | 最近的中文字幕在线看视频 | 偷窥日本少妇撒尿chinese | 久久精品99久久香蕉国产色戒 | 欧美老妇交乱视频在线观看 | 精品夜夜澡人妻无码av蜜桃 | 99久久精品无码一区二区毛片 | 日本肉体xxxx裸交 | 欧美人与牲动交xxxx | 狠狠cao日日穞夜夜穞av | 日韩亚洲欧美中文高清在线 | 蜜桃视频韩日免费播放 | 欧美xxxx黑人又粗又长 | 国产内射老熟女aaaa | 人妻夜夜爽天天爽三区 | 中文精品无码中文字幕无码专区 | 日欧一片内射va在线影院 | 国产成人精品三级麻豆 | 无码纯肉视频在线观看 | 综合激情五月综合激情五月激情1 | 国产精品无码成人午夜电影 | 亚洲娇小与黑人巨大交 | 精品久久8x国产免费观看 | 亚洲日韩av一区二区三区中文 | 中文字幕+乱码+中文字幕一区 | 亚洲精品中文字幕 | 水蜜桃亚洲一二三四在线 | 亚洲男人av香蕉爽爽爽爽 | 国产一区二区三区四区五区加勒比 | 国产熟妇另类久久久久 | 99久久99久久免费精品蜜桃 | 九九综合va免费看 | 红桃av一区二区三区在线无码av | 波多野结衣高清一区二区三区 | 免费看男女做好爽好硬视频 | 男人扒开女人内裤强吻桶进去 | av无码久久久久不卡免费网站 | 国产suv精品一区二区五 | 香港三级日本三级妇三级 | 国产午夜无码精品免费看 | 无码国产色欲xxxxx视频 | 国内老熟妇对白xxxxhd | 日韩精品无码一本二本三本色 | 乌克兰少妇xxxx做受 | 在线看片无码永久免费视频 | 日韩亚洲欧美精品综合 | 欧美熟妇另类久久久久久多毛 | 狠狠色欧美亚洲狠狠色www | 亚欧洲精品在线视频免费观看 | 国产成人综合美国十次 | 蜜桃无码一区二区三区 | 国产成人综合在线女婷五月99播放 | 亚洲狠狠婷婷综合久久 | 国产精品对白交换视频 | 一区二区三区高清视频一 | 55夜色66夜色国产精品视频 | 亚洲男人av香蕉爽爽爽爽 | 亚洲成av人影院在线观看 | 久久精品中文字幕大胸 | 日韩精品无码一区二区中文字幕 | 东京无码熟妇人妻av在线网址 | 麻豆人妻少妇精品无码专区 | 奇米影视888欧美在线观看 | 免费视频欧美无人区码 | 久久久久久九九精品久 | 国产午夜亚洲精品不卡 | 中文字幕av日韩精品一区二区 | 久精品国产欧美亚洲色aⅴ大片 | 国产高潮视频在线观看 | 亚洲成av人在线观看网址 | 一个人看的www免费视频在线观看 | 亚洲国产精华液网站w | 女人高潮内射99精品 | 亚洲熟熟妇xxxx | 又湿又紧又大又爽a视频国产 | 中文亚洲成a人片在线观看 | 中文字幕乱码亚洲无线三区 | 国产成人综合在线女婷五月99播放 | 久久五月精品中文字幕 | 国精品人妻无码一区二区三区蜜柚 | 高清国产亚洲精品自在久久 | 少妇性荡欲午夜性开放视频剧场 | 午夜性刺激在线视频免费 | 久久久久亚洲精品中文字幕 | 欧美人与禽猛交狂配 | 水蜜桃色314在线观看 | 国产激情无码一区二区 | 正在播放东北夫妻内射 | 日韩精品无码一本二本三本色 | 帮老师解开蕾丝奶罩吸乳网站 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 18禁黄网站男男禁片免费观看 | 国产香蕉97碰碰久久人人 | 久久精品国产一区二区三区肥胖 | aⅴ亚洲 日韩 色 图网站 播放 | 老子影院午夜精品无码 | 性欧美大战久久久久久久 | 久久久久99精品成人片 | 人妻人人添人妻人人爱 | 欧美精品无码一区二区三区 | 国产精品人妻一区二区三区四 | 黑人巨大精品欧美黑寡妇 | 人人澡人摸人人添 | 玩弄少妇高潮ⅹxxxyw | 国产精品手机免费 | 欧美熟妇另类久久久久久多毛 | 国产另类ts人妖一区二区 | 中国女人内谢69xxxxxa片 | 中文无码精品a∨在线观看不卡 | 国产亚洲欧美日韩亚洲中文色 | 久久综合网欧美色妞网 | 理论片87福利理论电影 | 亚洲欧美中文字幕5发布 | 欧美 日韩 人妻 高清 中文 | 极品嫩模高潮叫床 | 日韩亚洲欧美中文高清在线 | 丰满诱人的人妻3 | 国产无遮挡又黄又爽又色 | 国产成人av免费观看 | 国产小呦泬泬99精品 | аⅴ资源天堂资源库在线 | 九一九色国产 | 狠狠综合久久久久综合网 | 在线天堂新版最新版在线8 | 蜜臀aⅴ国产精品久久久国产老师 | 亚洲中文字幕在线无码一区二区 | 久久久国产一区二区三区 | 亚洲男女内射在线播放 | 久久国产精品偷任你爽任你 | 狠狠亚洲超碰狼人久久 | 亚洲国产精品久久久久久 | 99久久精品日本一区二区免费 | 国産精品久久久久久久 | 伦伦影院午夜理论片 | 久久97精品久久久久久久不卡 | 中文字幕人成乱码熟女app | 娇妻被黑人粗大高潮白浆 | 精品偷自拍另类在线观看 | 人妻中文无码久热丝袜 | 国产在线aaa片一区二区99 | 日韩av无码一区二区三区 | 一个人免费观看的www视频 | 熟妇人妻无乱码中文字幕 | 国产三级精品三级男人的天堂 | 亚洲s色大片在线观看 | 色综合久久久无码网中文 | 国产av无码专区亚洲awww | 亚洲国产欧美国产综合一区 | 激情综合激情五月俺也去 | 狠狠cao日日穞夜夜穞av | 呦交小u女精品视频 | 久久亚洲中文字幕精品一区 | 最近的中文字幕在线看视频 | 亚洲国产精品一区二区美利坚 | 亚洲精品一区二区三区婷婷月 | 麻豆人妻少妇精品无码专区 | 最近中文2019字幕第二页 | 夜夜高潮次次欢爽av女 | 无码精品人妻一区二区三区av | 精品国产一区二区三区四区 | 亚洲精品国产精品乱码不卡 | 久久成人a毛片免费观看网站 | 国产sm调教视频在线观看 | 欧美日韩人成综合在线播放 | 给我免费的视频在线观看 | 色综合久久88色综合天天 | 国产精品久久久久久无码 | 亚洲色www成人永久网址 | 久久午夜无码鲁丝片午夜精品 | 漂亮人妻洗澡被公强 日日躁 | 国产精品成人av在线观看 | 国产人妻大战黑人第1集 | 午夜成人1000部免费视频 | 99久久久无码国产精品免费 | 伊人久久大香线蕉午夜 | 久久无码中文字幕免费影院蜜桃 | 国产精品久久久久无码av色戒 | 精品久久久久久人妻无码中文字幕 | 300部国产真实乱 | 国产九九九九九九九a片 | 成人性做爰aaa片免费看不忠 | 亚洲成a人一区二区三区 | 76少妇精品导航 | 天天躁夜夜躁狠狠是什么心态 | 蜜桃视频韩日免费播放 | 久久久久人妻一区精品色欧美 | 强辱丰满人妻hd中文字幕 | 欧美国产亚洲日韩在线二区 | 精品 日韩 国产 欧美 视频 | 国产精品国产三级国产专播 | 久青草影院在线观看国产 | 国产精品理论片在线观看 | 99re在线播放 | 国产内射爽爽大片视频社区在线 | 日韩亚洲欧美中文高清在线 | 国产免费无码一区二区视频 | 荫蒂添的好舒服视频囗交 | 麻豆av传媒蜜桃天美传媒 | 人妻少妇精品久久 | 欧美放荡的少妇 | 午夜成人1000部免费视频 | 在线播放免费人成毛片乱码 | 麻豆果冻传媒2021精品传媒一区下载 | 99久久精品国产一区二区蜜芽 | 国产精品.xx视频.xxtv | 国产无遮挡吃胸膜奶免费看 | 欧美熟妇另类久久久久久不卡 | 97色伦图片97综合影院 | 亚洲精品国产精品乱码视色 | 98国产精品综合一区二区三区 | 小泽玛莉亚一区二区视频在线 | 久久久久99精品成人片 | 久久久久免费精品国产 | 中文无码成人免费视频在线观看 | √天堂中文官网8在线 | 国产精品欧美成人 | 国产亚洲欧美日韩亚洲中文色 | 性做久久久久久久免费看 | 精品人妻人人做人人爽夜夜爽 | 午夜福利一区二区三区在线观看 | 色欲久久久天天天综合网精品 | 亚拍精品一区二区三区探花 | 欧美日韩在线亚洲综合国产人 | 久久久久久av无码免费看大片 | 婷婷综合久久中文字幕蜜桃三电影 | 大肉大捧一进一出视频出来呀 | 青青青手机频在线观看 | 色婷婷av一区二区三区之红樱桃 | 久久综合香蕉国产蜜臀av | 亚洲欧美中文字幕5发布 | 成 人 网 站国产免费观看 | 国产午夜手机精彩视频 | 久久综合给久久狠狠97色 | 大肉大捧一进一出视频出来呀 | 51国偷自产一区二区三区 | 日日摸夜夜摸狠狠摸婷婷 | 99久久人妻精品免费二区 | 奇米影视7777久久精品 | 四虎国产精品免费久久 | 国产精品手机免费 | 亚洲国产一区二区三区在线观看 | 欧美精品一区二区精品久久 | 欧美日本精品一区二区三区 | 少妇性荡欲午夜性开放视频剧场 | 黑人粗大猛烈进出高潮视频 | 98国产精品综合一区二区三区 | 玩弄中年熟妇正在播放 | 狠狠噜狠狠狠狠丁香五月 | 成熟人妻av无码专区 | 天天躁夜夜躁狠狠是什么心态 | 国产亚洲人成a在线v网站 | 动漫av一区二区在线观看 | 色综合视频一区二区三区 | 欧美怡红院免费全部视频 | 男人和女人高潮免费网站 | 亚洲成色www久久网站 | 国产成人无码午夜视频在线观看 | 免费男性肉肉影院 | 国产一区二区三区四区五区加勒比 | 粗大的内捧猛烈进出视频 | 成熟人妻av无码专区 | 亚洲日韩一区二区三区 | 我要看www免费看插插视频 | 亚洲一区二区三区国产精华液 | 午夜成人1000部免费视频 | 夫妻免费无码v看片 | 中文字幕中文有码在线 | 牲欲强的熟妇农村老妇女 | 亚洲阿v天堂在线 | 亚洲精品成a人在线观看 | 国产suv精品一区二区五 | 人人妻人人澡人人爽精品欧美 | 成人一在线视频日韩国产 | 精品国产一区av天美传媒 | 国产精品嫩草久久久久 | 女人被男人躁得好爽免费视频 | 少妇被黑人到高潮喷出白浆 | 国产精品多人p群无码 | 牲欲强的熟妇农村老妇女 | 国产亚洲精品精品国产亚洲综合 | 国产综合色产在线精品 | 国产香蕉尹人视频在线 | 特黄特色大片免费播放器图片 | 国产精品无码成人午夜电影 | 久久久久亚洲精品中文字幕 | 国产无套内射久久久国产 | 亚洲小说图区综合在线 | 中文字幕中文有码在线 | 久久精品视频在线看15 | 天天做天天爱天天爽综合网 | 久久99久久99精品中文字幕 | 少妇性俱乐部纵欲狂欢电影 | 亚洲精品国产第一综合99久久 | 最近免费中文字幕中文高清百度 | 小鲜肉自慰网站xnxx | 中文字幕无码av激情不卡 | 精品久久久久香蕉网 | 水蜜桃色314在线观看 | 最新国产麻豆aⅴ精品无码 | 久久无码人妻影院 | 麻豆国产97在线 | 欧洲 | 熟妇女人妻丰满少妇中文字幕 | 亚洲一区二区观看播放 | 97se亚洲精品一区 | 成人av无码一区二区三区 | 精品人妻av区 | 啦啦啦www在线观看免费视频 | 人人澡人人透人人爽 | 色妞www精品免费视频 | 亚洲高清偷拍一区二区三区 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲日韩一区二区三区 | 成 人影片 免费观看 | 国产精品久免费的黄网站 | 夜夜影院未满十八勿进 | 九九久久精品国产免费看小说 | 精品夜夜澡人妻无码av蜜桃 | 丰满人妻翻云覆雨呻吟视频 | 一本色道婷婷久久欧美 | 国产性生大片免费观看性 | 天天爽夜夜爽夜夜爽 | 亚洲欧美精品aaaaaa片 | 中文字幕中文有码在线 | 天堂无码人妻精品一区二区三区 | 又湿又紧又大又爽a视频国产 | 人妻天天爽夜夜爽一区二区 | 婷婷丁香五月天综合东京热 | 人人妻人人澡人人爽欧美一区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 欧美乱妇无乱码大黄a片 | 日本高清一区免费中文视频 | 久久精品国产亚洲精品 | 国产精品二区一区二区aⅴ污介绍 | 中文字幕+乱码+中文字幕一区 | 国精产品一品二品国精品69xx | 亚洲va中文字幕无码久久不卡 | 免费无码av一区二区 | 男人的天堂av网站 | 亚洲精品国产精品乱码视色 | 少妇人妻大乳在线视频 | 久久综合给合久久狠狠狠97色 | 精品偷自拍另类在线观看 | 日韩av无码中文无码电影 | 又黄又爽又色的视频 | 国产精品爱久久久久久久 | 中文无码成人免费视频在线观看 | 久久精品成人欧美大片 | 67194成是人免费无码 | 精品无码国产一区二区三区av | 久久综合狠狠综合久久综合88 | 亚洲成a人片在线观看日本 | 99er热精品视频 | 国产av久久久久精东av | 久久精品人人做人人综合试看 | 久久99国产综合精品 | 婷婷丁香五月天综合东京热 | 玩弄人妻少妇500系列视频 | 曰韩无码二三区中文字幕 | 成人综合网亚洲伊人 | 又湿又紧又大又爽a视频国产 | 久久久久久国产精品无码下载 | 亚洲精品www久久久 | 99精品视频在线观看免费 | 日本一卡二卡不卡视频查询 | 日日摸天天摸爽爽狠狠97 | 老子影院午夜伦不卡 | 国产一区二区三区四区五区加勒比 | 久久久精品成人免费观看 | 久久人人爽人人爽人人片ⅴ | av人摸人人人澡人人超碰下载 | 婷婷色婷婷开心五月四房播播 | 亚洲人交乣女bbw | www国产亚洲精品久久久日本 | aⅴ亚洲 日韩 色 图网站 播放 | 在教室伦流澡到高潮hnp视频 | 少妇性荡欲午夜性开放视频剧场 | 日韩av无码一区二区三区 | 久久精品人人做人人综合 | 呦交小u女精品视频 | 国产亚洲精品久久久久久大师 | www国产亚洲精品久久网站 | 学生妹亚洲一区二区 | 狠狠噜狠狠狠狠丁香五月 | 国产精品亚洲а∨无码播放麻豆 | 狠狠躁日日躁夜夜躁2020 | 欧美兽交xxxx×视频 | 玩弄少妇高潮ⅹxxxyw | 午夜成人1000部免费视频 | 无码纯肉视频在线观看 | 国产区女主播在线观看 | 97夜夜澡人人爽人人喊中国片 | 国产又爽又猛又粗的视频a片 | a在线观看免费网站大全 | 亚洲一区二区三区偷拍女厕 | 亚洲综合在线一区二区三区 | 亚洲午夜福利在线观看 | 国产欧美精品一区二区三区 | 成 人 免费观看网站 | 高清国产亚洲精品自在久久 | 99久久久无码国产aaa精品 | 一本大道久久东京热无码av | 亚洲自偷自偷在线制服 | 久久精品人人做人人综合试看 | 日韩视频 中文字幕 视频一区 | 亚洲最大成人网站 | 亚洲日韩一区二区三区 | 国产猛烈高潮尖叫视频免费 | 国产乱人偷精品人妻a片 | 少妇邻居内射在线 | 久久精品中文字幕大胸 | 国产午夜亚洲精品不卡 | 牲交欧美兽交欧美 | 青青草原综合久久大伊人精品 | 成人免费无码大片a毛片 | 国产精品久久久久无码av色戒 | 成在人线av无码免费 | 澳门永久av免费网站 | 久久亚洲日韩精品一区二区三区 | 国产精品亚洲五月天高清 | 狠狠色噜噜狠狠狠7777奇米 | 国产精品久久久久7777 | 成人无码视频免费播放 | 老子影院午夜伦不卡 | 国产成人综合美国十次 | 亚洲伊人久久精品影院 | 国产精品久久久av久久久 | 成人亚洲精品久久久久软件 | 国产精品亚洲lv粉色 | 亚洲中文字幕久久无码 | 六十路熟妇乱子伦 | 一本色道久久综合亚洲精品不卡 | 人人妻人人澡人人爽人人精品 | 国产成人无码午夜视频在线观看 | 亚洲国产欧美在线成人 | 成人精品视频一区二区 | 99久久人妻精品免费一区 | 国产亚洲精品久久久ai换 | 欧美熟妇另类久久久久久多毛 | 日日鲁鲁鲁夜夜爽爽狠狠 | 色婷婷av一区二区三区之红樱桃 | 中文字幕无码av波多野吉衣 | 欧美乱妇无乱码大黄a片 | 国产精品怡红院永久免费 | 精品国产一区二区三区四区 | 一二三四在线观看免费视频 | 亚洲国精产品一二二线 | 无码av免费一区二区三区试看 | 无套内谢的新婚少妇国语播放 | 亚洲理论电影在线观看 | 麻豆md0077饥渴少妇 | 1000部夫妻午夜免费 | 国产精品久久久一区二区三区 | 无码纯肉视频在线观看 | 日韩精品久久久肉伦网站 | 国产成人久久精品流白浆 | 精品国产乱码久久久久乱码 | 扒开双腿吃奶呻吟做受视频 | 爆乳一区二区三区无码 | 成人一在线视频日韩国产 | 中文字幕无码av波多野吉衣 | 亚拍精品一区二区三区探花 | 国产成人人人97超碰超爽8 | 超碰97人人做人人爱少妇 | 日本饥渴人妻欲求不满 | 国产亚洲精品久久久久久 | 精品久久久中文字幕人妻 | 人妻插b视频一区二区三区 | 天天爽夜夜爽夜夜爽 | 最近免费中文字幕中文高清百度 | 亚洲成av人片天堂网无码】 | 日日摸天天摸爽爽狠狠97 | 99精品无人区乱码1区2区3区 | 无码av最新清无码专区吞精 | 樱花草在线社区www | 人人爽人人澡人人人妻 | 牲欲强的熟妇农村老妇女视频 | 麻豆国产人妻欲求不满 | 久久综合九色综合欧美狠狠 | 亚洲人成网站色7799 | 日韩亚洲欧美精品综合 | 中文字幕乱码人妻无码久久 | 国产农村乱对白刺激视频 | 精品午夜福利在线观看 | 图片区 小说区 区 亚洲五月 | 男女性色大片免费网站 | 国产亚洲精品久久久久久久久动漫 | 日本va欧美va欧美va精品 | 麻花豆传媒剧国产免费mv在线 | 丰满人妻一区二区三区免费视频 | 亚洲va欧美va天堂v国产综合 | 亚洲人亚洲人成电影网站色 | 亚洲综合色区中文字幕 | 精品熟女少妇av免费观看 | www国产精品内射老师 | 精品国产一区二区三区av 性色 | 国产亚洲视频中文字幕97精品 | 日韩精品无码免费一区二区三区 | 97久久国产亚洲精品超碰热 | 欧美日本日韩 | 东京无码熟妇人妻av在线网址 | 久久精品人妻少妇一区二区三区 | 国产人成高清在线视频99最全资源 | 无码国产乱人伦偷精品视频 | 久久久久久av无码免费看大片 | 亚洲国产精品一区二区第一页 | 131美女爱做视频 | 真人与拘做受免费视频 | 亚洲成av人影院在线观看 | 国产精品久久久 | 欧美性猛交内射兽交老熟妇 | 亚洲成a人片在线观看日本 | 久久精品国产一区二区三区 | 国产特级毛片aaaaaa高潮流水 | 精品一区二区不卡无码av | 久久人人爽人人人人片 | 成 人 网 站国产免费观看 | 国产又爽又黄又刺激的视频 | 亚洲精品成a人在线观看 | 国产成人无码a区在线观看视频app | 久久精品中文闷骚内射 | 人人妻人人澡人人爽欧美精品 | 亚洲欧美色中文字幕在线 | 国产精品香蕉在线观看 | 久久国产精品_国产精品 | 亚洲精品中文字幕 | 国产精品多人p群无码 | 久热国产vs视频在线观看 | 免费人成网站视频在线观看 | 岛国片人妻三上悠亚 | 国语自产偷拍精品视频偷 | 欧美日韩一区二区综合 | 国产成人无码av一区二区 | 久久久久亚洲精品中文字幕 | 99视频精品全部免费免费观看 | 国产国产精品人在线视 | 少妇无码吹潮 | 成 人 免费观看网站 | 97精品国产97久久久久久免费 | 18禁黄网站男男禁片免费观看 | 俄罗斯老熟妇色xxxx | 天天躁夜夜躁狠狠是什么心态 | 色欲人妻aaaaaaa无码 | 人妻与老人中文字幕 | 强伦人妻一区二区三区视频18 | 精品国产av色一区二区深夜久久 | 国产9 9在线 | 中文 | 欧美熟妇另类久久久久久不卡 | 欧美精品国产综合久久 | 亚洲色大成网站www国产 | 男人的天堂av网站 | 成 人 免费观看网站 | 大乳丰满人妻中文字幕日本 | 九九综合va免费看 | 精品夜夜澡人妻无码av蜜桃 | aⅴ在线视频男人的天堂 | 性生交片免费无码看人 | 国产成人综合美国十次 | 色五月五月丁香亚洲综合网 | 中文字幕亚洲情99在线 | 在线欧美精品一区二区三区 | 欧美刺激性大交 | 无码免费一区二区三区 | 青青青手机频在线观看 | 中文字幕无码免费久久99 | 少妇厨房愉情理9仑片视频 | 国产人妻精品一区二区三区 | 狠狠综合久久久久综合网 | 久久99久久99精品中文字幕 | 无码精品人妻一区二区三区av | 午夜福利试看120秒体验区 | 亚洲色www成人永久网址 | 国产性生交xxxxx无码 | 自拍偷自拍亚洲精品10p | 亚无码乱人伦一区二区 | 人人超人人超碰超国产 | 久久久久久久女国产乱让韩 | 久久久成人毛片无码 | 久久精品视频在线看15 | 色婷婷香蕉在线一区二区 | 免费无码av一区二区 | yw尤物av无码国产在线观看 | 在线观看免费人成视频 | 欧美怡红院免费全部视频 | 日韩欧美中文字幕公布 | 国产午夜福利100集发布 | 好男人www社区 | 国产乱人伦偷精品视频 | 国产精品99久久精品爆乳 | 1000部啪啪未满十八勿入下载 | 麻豆成人精品国产免费 | 一二三四社区在线中文视频 | 少妇人妻大乳在线视频 | 麻豆蜜桃av蜜臀av色欲av | 亚洲人成人无码网www国产 | 国产亚洲精品久久久闺蜜 | 国产麻豆精品一区二区三区v视界 | 性欧美疯狂xxxxbbbb | 国产亚洲欧美在线专区 | yw尤物av无码国产在线观看 | av人摸人人人澡人人超碰下载 | 女人被爽到呻吟gif动态图视看 | 中文亚洲成a人片在线观看 | 好爽又高潮了毛片免费下载 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国产熟妇高潮叫床视频播放 | 97精品人妻一区二区三区香蕉 | 鲁鲁鲁爽爽爽在线视频观看 | 欧美丰满熟妇xxxx性ppx人交 | 一区二区三区高清视频一 | 亚无码乱人伦一区二区 | 国产精品无套呻吟在线 | 88国产精品欧美一区二区三区 | 奇米影视888欧美在线观看 | 激情内射日本一区二区三区 | 国产精品无码久久av | 久久久久99精品国产片 | 久久这里只有精品视频9 | 成人精品视频一区二区三区尤物 | 国产av无码专区亚洲a∨毛片 | 亚洲高清偷拍一区二区三区 | 成人免费视频一区二区 | 国产精品久久久久7777 | 午夜精品久久久久久久久 | 麻豆国产人妻欲求不满谁演的 | 一二三四在线观看免费视频 | 高潮毛片无遮挡高清免费视频 | 国产亚洲精品久久久久久久 | 成人性做爰aaa片免费看不忠 | 初尝人妻少妇中文字幕 | 亚洲 日韩 欧美 成人 在线观看 | 国产口爆吞精在线视频 | 蜜臀av无码人妻精品 | 国产亚洲欧美日韩亚洲中文色 | 亚洲国产欧美国产综合一区 | 色综合久久久久综合一本到桃花网 | 亚洲中文字幕无码中字 | 荫蒂被男人添的好舒服爽免费视频 | 在线播放免费人成毛片乱码 | 亚洲国产欧美日韩精品一区二区三区 | 夜夜躁日日躁狠狠久久av | 色情久久久av熟女人妻网站 | 少妇高潮一区二区三区99 | 精品国产精品久久一区免费式 | 日本精品少妇一区二区三区 | 亚洲一区二区观看播放 | 精品少妇爆乳无码av无码专区 | 亚洲 激情 小说 另类 欧美 | 成人无码精品1区2区3区免费看 | 日本大乳高潮视频在线观看 | 精品无码国产自产拍在线观看蜜 | 国产精品无码永久免费888 | 领导边摸边吃奶边做爽在线观看 | 午夜无码人妻av大片色欲 | 国产成人无码午夜视频在线观看 | 欧美高清在线精品一区 | 一本久道高清无码视频 | 狠狠综合久久久久综合网 | 东京热男人av天堂 | 亚洲人亚洲人成电影网站色 | 少妇性l交大片 | 高潮毛片无遮挡高清免费视频 | 久久国产自偷自偷免费一区调 | 99久久久无码国产aaa精品 | 亚洲熟妇自偷自拍另类 | 最新国产乱人伦偷精品免费网站 | 青青久在线视频免费观看 | 日韩欧美群交p片內射中文 | 国语精品一区二区三区 | 午夜无码人妻av大片色欲 | 最近中文2019字幕第二页 | 成人亚洲精品久久久久软件 | aⅴ亚洲 日韩 色 图网站 播放 | 欧美激情内射喷水高潮 | 99国产欧美久久久精品 | 在线亚洲高清揄拍自拍一品区 | 精品成人av一区二区三区 | 国产成人综合美国十次 | 日韩人妻无码中文字幕视频 | 国产人妻精品一区二区三区不卡 | 人人超人人超碰超国产 | 国产无遮挡吃胸膜奶免费看 | 麻豆精产国品 | 亚洲日韩精品欧美一区二区 | 亚洲成av人片天堂网无码】 | 久久精品国产精品国产精品污 | 熟妇人妻无码xxx视频 | 亚洲一区二区观看播放 | 亚洲国产精品成人久久蜜臀 | 日韩av无码一区二区三区不卡 | 精品成在人线av无码免费看 | 妺妺窝人体色www婷婷 | 亚洲国产高清在线观看视频 | 亚洲春色在线视频 | 久久久婷婷五月亚洲97号色 | 天下第一社区视频www日本 | 美女张开腿让人桶 | 欧洲熟妇色 欧美 | 国产超碰人人爽人人做人人添 | 曰本女人与公拘交酡免费视频 | 国产亚洲视频中文字幕97精品 | 国产激情无码一区二区app | 日本熟妇浓毛 | 欧美黑人巨大xxxxx | 国产两女互慰高潮视频在线观看 | 人妻体内射精一区二区三四 | 亚洲成av人影院在线观看 | 丰满肥臀大屁股熟妇激情视频 | 国产精品99久久精品爆乳 | 久久精品国产亚洲精品 | 精品无人国产偷自产在线 | 久久五月精品中文字幕 | 亚洲人成网站在线播放942 | 久激情内射婷内射蜜桃人妖 | 久久精品无码一区二区三区 | 青草视频在线播放 | 色偷偷人人澡人人爽人人模 | 久久精品中文字幕大胸 | 中文字幕日韩精品一区二区三区 | 中文久久乱码一区二区 | 久久久精品成人免费观看 | 国产成人av免费观看 | 欧美性生交活xxxxxdddd | 色综合天天综合狠狠爱 | 亚洲色www成人永久网址 | 亚洲热妇无码av在线播放 | 麻豆人妻少妇精品无码专区 | 亚洲国产欧美日韩精品一区二区三区 | 最近的中文字幕在线看视频 | 国产乱人偷精品人妻a片 | 亚洲国产精品久久人人爱 | 99麻豆久久久国产精品免费 | 图片区 小说区 区 亚洲五月 | 中文无码精品a∨在线观看不卡 | 国产无套内射久久久国产 | 亚洲热妇无码av在线播放 | 乌克兰少妇性做爰 | 免费看男女做好爽好硬视频 | 国内丰满熟女出轨videos | 在线观看国产一区二区三区 | 51国偷自产一区二区三区 | 亚洲色大成网站www | 无套内谢的新婚少妇国语播放 | 蜜臀aⅴ国产精品久久久国产老师 | 东京一本一道一二三区 | 亚洲 日韩 欧美 成人 在线观看 | 国产精品福利视频导航 | 中文字幕乱码亚洲无线三区 | 18无码粉嫩小泬无套在线观看 | 国产成人精品久久亚洲高清不卡 | 骚片av蜜桃精品一区 | 乱人伦中文视频在线观看 | 成在人线av无码免费 | 久久精品国产一区二区三区肥胖 | 九月婷婷人人澡人人添人人爽 | 人人爽人人爽人人片av亚洲 | 久久久www成人免费毛片 | 精品人妻av区 | 77777熟女视频在线观看 а天堂中文在线官网 | 久精品国产欧美亚洲色aⅴ大片 | 秋霞成人午夜鲁丝一区二区三区 | 无码播放一区二区三区 | 精品熟女少妇av免费观看 | 日本饥渴人妻欲求不满 | 国産精品久久久久久久 | 久久99国产综合精品 | 丝袜 中出 制服 人妻 美腿 | a在线亚洲男人的天堂 | 免费网站看v片在线18禁无码 | 伊人久久大香线蕉亚洲 | 午夜福利试看120秒体验区 | 国产亚洲精品久久久久久大师 | 红桃av一区二区三区在线无码av | 丰满护士巨好爽好大乳 | 97久久超碰中文字幕 | 扒开双腿疯狂进出爽爽爽视频 | 欧美黑人巨大xxxxx | 久久精品人人做人人综合 | 中文字幕久久久久人妻 | 国产在线无码精品电影网 | 国产激情综合五月久久 | 国产激情综合五月久久 | 福利一区二区三区视频在线观看 | 蜜桃av抽搐高潮一区二区 | 国产精品久久国产精品99 | 国产办公室秘书无码精品99 | 久久久精品国产sm最大网站 | 亚洲人成人无码网www国产 | 色综合视频一区二区三区 | 精品久久久久香蕉网 | 国产精品久久精品三级 | 欧美第一黄网免费网站 | 麻豆精品国产精华精华液好用吗 | 国产亚洲美女精品久久久2020 | 思思久久99热只有频精品66 | 日日麻批免费40分钟无码 | 亚洲区小说区激情区图片区 | 日本一区二区三区免费高清 | 人人妻人人澡人人爽精品欧美 | 亚洲乱码国产乱码精品精 | 免费无码午夜福利片69 | 一个人看的www免费视频在线观看 | 亚洲精品久久久久avwww潮水 | 国产特级毛片aaaaaa高潮流水 | 日韩人妻少妇一区二区三区 | 亚洲精品久久久久中文第一幕 | 在线播放免费人成毛片乱码 | 亚洲成a人片在线观看日本 | 欧美三级a做爰在线观看 | 精品人妻人人做人人爽夜夜爽 | 性史性农村dvd毛片 | 高清不卡一区二区三区 | 中文字幕人妻丝袜二区 | aa片在线观看视频在线播放 | 国产小呦泬泬99精品 | 97无码免费人妻超级碰碰夜夜 | 中文字幕乱码人妻二区三区 | 国产精品久久久午夜夜伦鲁鲁 | 美女扒开屁股让男人桶 | 老子影院午夜精品无码 | 国产精品久久久久无码av色戒 | 久激情内射婷内射蜜桃人妖 | 久久国内精品自在自线 | 国产乱子伦视频在线播放 | 国模大胆一区二区三区 | 高清国产亚洲精品自在久久 | 樱花草在线社区www | 亚洲a无码综合a国产av中文 | 永久免费观看国产裸体美女 | 精品久久久久香蕉网 | 亚洲成a人片在线观看日本 | 熟妇人妻无乱码中文字幕 | 亚洲精品国产精品乱码不卡 | 狠狠躁日日躁夜夜躁2020 | 3d动漫精品啪啪一区二区中 | 亚洲欧洲中文日韩av乱码 | 国产suv精品一区二区五 | 免费无码肉片在线观看 | 色综合久久久久综合一本到桃花网 | 狂野欧美性猛交免费视频 | 亚洲精品一区二区三区婷婷月 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 日韩精品无码一区二区中文字幕 | 欧美 丝袜 自拍 制服 另类 | 亚洲人成网站色7799 | 狂野欧美激情性xxxx | 国产无遮挡又黄又爽免费视频 | 日本又色又爽又黄的a片18禁 | 国产精品va在线播放 | 在线精品亚洲一区二区 | 18黄暴禁片在线观看 | 青青青手机频在线观看 | 精品国产成人一区二区三区 | 强奷人妻日本中文字幕 | 亚洲中文字幕无码一久久区 | 黑人玩弄人妻中文在线 | 国产精品福利视频导航 | 免费网站看v片在线18禁无码 | 精品午夜福利在线观看 | 漂亮人妻洗澡被公强 日日躁 | 亚洲成av人片天堂网无码】 | 人人爽人人爽人人片av亚洲 | 性史性农村dvd毛片 | 精品欧美一区二区三区久久久 | 国产av无码专区亚洲a∨毛片 | 精品少妇爆乳无码av无码专区 | 四虎永久在线精品免费网址 | 欧美 日韩 人妻 高清 中文 | 丰满人妻翻云覆雨呻吟视频 | 国产成人一区二区三区在线观看 | 国产偷国产偷精品高清尤物 | 国产成人精品无码播放 | 日本一卡二卡不卡视频查询 | 377p欧洲日本亚洲大胆 | 性欧美牲交xxxxx视频 | 俺去俺来也www色官网 | 免费无码午夜福利片69 | 亚洲成av人综合在线观看 | 性欧美牲交在线视频 | 日韩少妇白浆无码系列 | 国产猛烈高潮尖叫视频免费 | 亚洲中文无码av永久不收费 | 国产精品久久久久影院嫩草 | 久久久婷婷五月亚洲97号色 | 九九久久精品国产免费看小说 | 国产婷婷色一区二区三区在线 | 伊人久久大香线蕉av一区二区 | 中文毛片无遮挡高清免费 | 小泽玛莉亚一区二区视频在线 | 日韩 欧美 动漫 国产 制服 | 丰满少妇熟乱xxxxx视频 | 久青草影院在线观看国产 | 青青久在线视频免费观看 | 麻豆md0077饥渴少妇 | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲精品午夜国产va久久成人 | 久久97精品久久久久久久不卡 | 色五月五月丁香亚洲综合网 | 香蕉久久久久久av成人 | 中文字幕av伊人av无码av | 天天做天天爱天天爽综合网 | av无码电影一区二区三区 | 国产无遮挡又黄又爽又色 | 国产成人综合美国十次 | 高清国产亚洲精品自在久久 | 国产乡下妇女做爰 | 永久免费精品精品永久-夜色 | 国产在线精品一区二区三区直播 | 亚洲男女内射在线播放 | 人人妻人人澡人人爽欧美一区 | 美女极度色诱视频国产 | 国产亚洲精品久久久久久 | 俄罗斯老熟妇色xxxx | 亚洲精品欧美二区三区中文字幕 | 久久精品女人的天堂av | 美女黄网站人色视频免费国产 | 久久熟妇人妻午夜寂寞影院 | 18无码粉嫩小泬无套在线观看 | 亚洲欧美日韩国产精品一区二区 | 国产精品久久久久7777 | 大肉大捧一进一出视频出来呀 | 国产人妻人伦精品1国产丝袜 | 国产亚洲精品久久久久久国模美 | 色偷偷人人澡人人爽人人模 | 人人超人人超碰超国产 | 人人妻人人澡人人爽人人精品浪潮 | 国产精品无码永久免费888 | 激情国产av做激情国产爱 | 婷婷五月综合缴情在线视频 | 国产成人无码av在线影院 | 大地资源中文第3页 | 无码免费一区二区三区 | 性欧美牲交在线视频 | 久久这里只有精品视频9 | 影音先锋中文字幕无码 | 在线成人www免费观看视频 | 丝袜足控一区二区三区 | 麻豆精品国产精华精华液好用吗 | 中文亚洲成a人片在线观看 | 午夜时刻免费入口 | 国产婷婷色一区二区三区在线 | 99麻豆久久久国产精品免费 | 国产成人一区二区三区别 | 天干天干啦夜天干天2017 | 色诱久久久久综合网ywww | 在线观看国产午夜福利片 | 欧美国产日韩久久mv | 美女毛片一区二区三区四区 | 国产精品美女久久久久av爽李琼 | 国内精品人妻无码久久久影院 | 中文字幕人成乱码熟女app | 特级做a爰片毛片免费69 | 亚洲精品久久久久久久久久久 | 正在播放老肥熟妇露脸 | 人妻少妇精品视频专区 | 精品成人av一区二区三区 | 又大又黄又粗又爽的免费视频 | 久久精品中文字幕一区 | 亚洲中文字幕在线观看 | 亚洲国产精品无码久久久久高潮 | 超碰97人人做人人爱少妇 | 亚洲熟妇色xxxxx欧美老妇 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲色偷偷男人的天堂 | 粉嫩少妇内射浓精videos | 国产人妻精品午夜福利免费 | 麻豆国产丝袜白领秘书在线观看 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 精品熟女少妇av免费观看 | 国产高潮视频在线观看 | 亚洲一区二区三区 | 亚洲色欲色欲欲www在线 | 99久久精品午夜一区二区 | 女人被爽到呻吟gif动态图视看 | 日韩精品无码一本二本三本色 | 免费乱码人妻系列无码专区 | 免费中文字幕日韩欧美 | 日本熟妇人妻xxxxx人hd | 国产无遮挡又黄又爽免费视频 | 久久午夜无码鲁丝片秋霞 | 国产无遮挡吃胸膜奶免费看 | 久久久www成人免费毛片 | 久久精品国产日本波多野结衣 | 国产高清不卡无码视频 | 精品无码成人片一区二区98 | 四虎永久在线精品免费网址 | 中文字幕色婷婷在线视频 | 国产亚洲美女精品久久久2020 | 天堂一区人妻无码 | 思思久久99热只有频精品66 | 天堂在线观看www | 亚洲精品欧美二区三区中文字幕 | 国产激情精品一区二区三区 | 中文字幕乱码亚洲无线三区 | 国产精品无码一区二区桃花视频 | 欧美一区二区三区 | 性史性农村dvd毛片 | 曰韩少妇内射免费播放 | 国产精品无码一区二区桃花视频 | 无码一区二区三区在线 | 国精产品一品二品国精品69xx | 天天av天天av天天透 | 欧美日韩在线亚洲综合国产人 | 大胆欧美熟妇xx | 国产色视频一区二区三区 | 久久亚洲精品中文字幕无男同 | 久久熟妇人妻午夜寂寞影院 | 少妇被粗大的猛进出69影院 | 亚洲 a v无 码免 费 成 人 a v | 免费无码肉片在线观看 | 99国产精品白浆在线观看免费 | 麻豆国产人妻欲求不满 | 亚洲欧美国产精品久久 | 欧美人与禽猛交狂配 | 无码av中文字幕免费放 | 亚洲成在人网站无码天堂 | 久久精品国产日本波多野结衣 | 亚洲成色www久久网站 | 欧美日韩在线亚洲综合国产人 | 丰满岳乱妇在线观看中字无码 | 欧美熟妇另类久久久久久多毛 | 免费观看又污又黄的网站 | 99久久婷婷国产综合精品青草免费 | 国产内射老熟女aaaa | 久9re热视频这里只有精品 | 亚洲国精产品一二二线 | 欧美xxxx黑人又粗又长 | 我要看www免费看插插视频 | 久久人人97超碰a片精品 | 人人爽人人澡人人人妻 | 国产精品久久久久7777 | 在线观看免费人成视频 | 永久免费观看美女裸体的网站 | 久久精品人人做人人综合 | 国内丰满熟女出轨videos | 国产精品福利视频导航 | 日韩精品无码免费一区二区三区 | 天天躁日日躁狠狠躁免费麻豆 | 精品久久久久久亚洲精品 | 日韩av无码一区二区三区 | yw尤物av无码国产在线观看 | 国产美女精品一区二区三区 | 日日橹狠狠爱欧美视频 | 麻豆成人精品国产免费 | 亚洲午夜久久久影院 | 精品人妻人人做人人爽夜夜爽 | 丝袜 中出 制服 人妻 美腿 | 欧美人与物videos另类 | 国产精品无码mv在线观看 | 中文字幕中文有码在线 | 51国偷自产一区二区三区 | 免费播放一区二区三区 | 亚洲精品一区三区三区在线观看 | 国产成人无码午夜视频在线观看 | 亚洲无人区午夜福利码高清完整版 | 国产激情无码一区二区app | 丁香花在线影院观看在线播放 | 国产午夜手机精彩视频 | 久久熟妇人妻午夜寂寞影院 | 无码福利日韩神码福利片 | 国产性生大片免费观看性 | 久久久精品成人免费观看 | 国产在线精品一区二区高清不卡 | 国产内射爽爽大片视频社区在线 | 国产精品毛多多水多 | 亲嘴扒胸摸屁股激烈网站 | 日本精品少妇一区二区三区 | 亚洲精品一区二区三区在线 | 久久熟妇人妻午夜寂寞影院 | 国产综合久久久久鬼色 | 国产精品久久久久无码av色戒 | 国产极品视觉盛宴 | 中文字幕人妻无码一夲道 | 麻豆精品国产精华精华液好用吗 | 久久精品人人做人人综合 | 国产一区二区三区精品视频 | 未满小14洗澡无码视频网站 | 成人aaa片一区国产精品 | 国产在线精品一区二区高清不卡 | 2019午夜福利不卡片在线 | 欧美日韩人成综合在线播放 | 久久久精品人妻久久影视 | 国产亚洲精品精品国产亚洲综合 | 日韩无码专区 | 精品欧洲av无码一区二区三区 | 亲嘴扒胸摸屁股激烈网站 | 国内精品人妻无码久久久影院 | 亚洲 另类 在线 欧美 制服 | 无码人妻少妇伦在线电影 | 欧美性生交活xxxxxdddd | 亚洲欧洲中文日韩av乱码 | 成人精品一区二区三区中文字幕 | √天堂中文官网8在线 | 九九热爱视频精品 | 少妇被黑人到高潮喷出白浆 | 国产熟妇高潮叫床视频播放 | av小次郎收藏 | 中文精品无码中文字幕无码专区 | 免费国产成人高清在线观看网站 | 久久无码中文字幕免费影院蜜桃 | 成人性做爰aaa片免费看不忠 | 综合激情五月综合激情五月激情1 | 国产福利视频一区二区 | 亚洲精品一区二区三区四区五区 | 国产精华av午夜在线观看 | 国产乱人伦偷精品视频 | 精品 日韩 国产 欧美 视频 | 国产精品香蕉在线观看 | 最近的中文字幕在线看视频 | 麻豆成人精品国产免费 | 人人妻人人澡人人爽精品欧美 | 国产手机在线αⅴ片无码观看 | 国产亚洲精品久久久久久久 | √天堂资源地址中文在线 | 日日摸夜夜摸狠狠摸婷婷 | 少妇人妻偷人精品无码视频 | 国产在线精品一区二区三区直播 | 久久久久久久久888 | 久久99热只有频精品8 | 久久人妻内射无码一区三区 | 国产艳妇av在线观看果冻传媒 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 小sao货水好多真紧h无码视频 | 无码国产乱人伦偷精品视频 | 日韩视频 中文字幕 视频一区 | 亚洲人交乣女bbw | 成人无码精品1区2区3区免费看 | 男人扒开女人内裤强吻桶进去 | 在线精品国产一区二区三区 | 1000部啪啪未满十八勿入下载 | 日本乱偷人妻中文字幕 | 色婷婷av一区二区三区之红樱桃 | 午夜熟女插插xx免费视频 | 内射老妇bbwx0c0ck | 成 人影片 免费观看 | 国产97色在线 | 免 | 男女爱爱好爽视频免费看 | 国产亚洲人成在线播放 | 人妻aⅴ无码一区二区三区 | 久久久国产一区二区三区 | 久久综合狠狠综合久久综合88 | 一本久久伊人热热精品中文字幕 | 国产乡下妇女做爰 | 国产三级精品三级男人的天堂 | 国产精品无码一区二区三区不卡 | 天干天干啦夜天干天2017 | 亚洲中文字幕va福利 | 大乳丰满人妻中文字幕日本 | 精品久久8x国产免费观看 | 成熟妇人a片免费看网站 | 老司机亚洲精品影院 | 久久国产精品偷任你爽任你 | 99久久亚洲精品无码毛片 | 久久国语露脸国产精品电影 | 老司机亚洲精品影院无码 | 国产精品亚洲lv粉色 | 乱码av麻豆丝袜熟女系列 | 无码福利日韩神码福利片 | 欧洲熟妇精品视频 | 在线观看国产一区二区三区 | 欧美野外疯狂做受xxxx高潮 | 精品成在人线av无码免费看 | 国产一区二区三区日韩精品 | 巨爆乳无码视频在线观看 | 在线观看国产午夜福利片 | 国产精品国产自线拍免费软件 | 东北女人啪啪对白 | 免费视频欧美无人区码 | 国产熟妇高潮叫床视频播放 | 97精品国产97久久久久久免费 | 欧美性生交活xxxxxdddd | 无码人妻出轨黑人中文字幕 | 色一情一乱一伦 | 欧美怡红院免费全部视频 | 欧美 日韩 亚洲 在线 | 男人和女人高潮免费网站 | 最近免费中文字幕中文高清百度 | 婷婷综合久久中文字幕蜜桃三电影 | 色老头在线一区二区三区 | 亚洲综合另类小说色区 | 久久精品中文字幕大胸 | 鲁大师影院在线观看 | 又湿又紧又大又爽a视频国产 | 国产suv精品一区二区五 | 奇米影视7777久久精品 | 久久午夜无码鲁丝片午夜精品 | 97久久精品无码一区二区 | av人摸人人人澡人人超碰下载 | 日韩精品成人一区二区三区 | 一本加勒比波多野结衣 | 亚洲精品国产a久久久久久 | 丰满人妻翻云覆雨呻吟视频 | 东北女人啪啪对白 | 久久久久久a亚洲欧洲av冫 | 免费观看的无遮挡av | 久久综合狠狠综合久久综合88 | 2020最新国产自产精品 | 久久精品中文字幕大胸 | 免费网站看v片在线18禁无码 | 国产舌乚八伦偷品w中 | 亚洲精品久久久久久一区二区 | 学生妹亚洲一区二区 | 5858s亚洲色大成网站www | 久久人人爽人人爽人人片ⅴ | 最近免费中文字幕中文高清百度 | 亚无码乱人伦一区二区 | 亚洲小说图区综合在线 | 人妻少妇精品久久 | 欧美精品国产综合久久 | 97夜夜澡人人爽人人喊中国片 | 成人无码影片精品久久久 | 成人一区二区免费视频 | 永久免费观看美女裸体的网站 | 午夜理论片yy44880影院 | 国产精品第一国产精品 | 夜夜高潮次次欢爽av女 | 国产亚洲欧美在线专区 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲成av人综合在线观看 | 福利一区二区三区视频在线观看 | 日韩视频 中文字幕 视频一区 | 18禁止看的免费污网站 | 中文字幕色婷婷在线视频 | 狠狠cao日日穞夜夜穞av | 亚洲精品欧美二区三区中文字幕 | 日本熟妇人妻xxxxx人hd | 国产区女主播在线观看 | 天堂在线观看www | 欧美日韩在线亚洲综合国产人 | 国产精品va在线观看无码 | 免费视频欧美无人区码 | 日韩 欧美 动漫 国产 制服 | 男女猛烈xx00免费视频试看 | 无码一区二区三区在线观看 | 久久久成人毛片无码 | 国产免费久久久久久无码 | 国产性生交xxxxx无码 | 美女极度色诱视频国产 | 一本久久a久久精品vr综合 | 亚洲色欲色欲天天天www | 极品尤物被啪到呻吟喷水 | 欧美日韩色另类综合 | 久久综合激激的五月天 | 熟女俱乐部五十路六十路av | 亚洲精品一区三区三区在线观看 | 成人试看120秒体验区 | аⅴ资源天堂资源库在线 | 无码成人精品区在线观看 | 国产成人精品久久亚洲高清不卡 | 午夜男女很黄的视频 | 日韩人妻系列无码专区 | 久久综合网欧美色妞网 | 亚洲人成网站在线播放942 | 在线播放无码字幕亚洲 | 少妇邻居内射在线 | 亚洲 a v无 码免 费 成 人 a v | 一本大道伊人av久久综合 | 久久99精品国产麻豆蜜芽 | 扒开双腿疯狂进出爽爽爽视频 | 精品夜夜澡人妻无码av蜜桃 | 欧美freesex黑人又粗又大 | 国产无遮挡又黄又爽免费视频 | 成人免费视频一区二区 | 国产乱人伦av在线无码 | 一区二区传媒有限公司 | 性欧美大战久久久久久久 | 欧美丰满熟妇xxxx | 欧美日韩一区二区综合 | 成人免费视频视频在线观看 免费 | 国产精品视频免费播放 | 永久免费观看美女裸体的网站 | 人人妻人人澡人人爽欧美精品 | 美女毛片一区二区三区四区 | 黑森林福利视频导航 | 国产欧美精品一区二区三区 | 一本加勒比波多野结衣 | 国产莉萝无码av在线播放 | 欧美性猛交内射兽交老熟妇 | 久精品国产欧美亚洲色aⅴ大片 | 高清国产亚洲精品自在久久 | 久久久久国色av免费观看性色 | 国产精品va在线观看无码 | 少妇人妻大乳在线视频 | 性色欲情网站iwww九文堂 | 国产色在线 | 国产 | 人妻无码久久精品人妻 | 国产肉丝袜在线观看 | 国产人妻精品午夜福利免费 | 在线观看国产午夜福利片 | 1000部夫妻午夜免费 | 久久精品99久久香蕉国产色戒 | 久久五月精品中文字幕 | 少妇无码一区二区二三区 | 99久久久无码国产精品免费 | 麻豆国产丝袜白领秘书在线观看 | 无码乱肉视频免费大全合集 | 日韩无码专区 | 国产舌乚八伦偷品w中 | 国产av久久久久精东av | 日日噜噜噜噜夜夜爽亚洲精品 | 中文毛片无遮挡高清免费 | 国产真实伦对白全集 | 宝宝好涨水快流出来免费视频 | 粉嫩少妇内射浓精videos | 亚洲色成人中文字幕网站 | 欧美一区二区三区 | 国产真实夫妇视频 | 九九久久精品国产免费看小说 | 国产成人精品视频ⅴa片软件竹菊 | 老熟妇仑乱视频一区二区 | 男人和女人高潮免费网站 | 国产av剧情md精品麻豆 | 久久久久久av无码免费看大片 | 成年女人永久免费看片 | 国产精品美女久久久久av爽李琼 | 扒开双腿疯狂进出爽爽爽视频 | 国产成人无码区免费内射一片色欲 | 亚洲精品鲁一鲁一区二区三区 | 无码纯肉视频在线观看 | 99re在线播放 | 国产精品人人爽人人做我的可爱 | 少妇高潮一区二区三区99 | 日本va欧美va欧美va精品 | 性做久久久久久久免费看 | 清纯唯美经典一区二区 | 欧美精品一区二区精品久久 | 98国产精品综合一区二区三区 | 中文字幕无码免费久久99 | 色婷婷欧美在线播放内射 | 秋霞成人午夜鲁丝一区二区三区 | 97久久超碰中文字幕 | 西西人体www44rt大胆高清 | 国产69精品久久久久app下载 | 国产国产精品人在线视 | 久久久久久亚洲精品a片成人 | 性欧美牲交xxxxx视频 | 少妇的肉体aa片免费 | 天堂亚洲免费视频 | 色婷婷欧美在线播放内射 | 99视频精品全部免费免费观看 | 熟女少妇在线视频播放 | 亚洲日本一区二区三区在线 | 日韩人妻无码中文字幕视频 | ass日本丰满熟妇pics | 欧美国产日产一区二区 | 国产精品无套呻吟在线 | 粉嫩少妇内射浓精videos | 国产女主播喷水视频在线观看 | 国产又粗又硬又大爽黄老大爷视 | 亚洲成av人片天堂网无码】 | 亚洲一区二区三区无码久久 | 久久人人97超碰a片精品 | 精品人妻中文字幕有码在线 | 偷窥村妇洗澡毛毛多 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产av一区二区精品久久凹凸 | 在线看片无码永久免费视频 | 欧美国产亚洲日韩在线二区 | ass日本丰满熟妇pics | 精品国产麻豆免费人成网站 | 无码精品国产va在线观看dvd | 亚洲精品久久久久avwww潮水 | 1000部夫妻午夜免费 | 国产一区二区三区日韩精品 | 亚洲精品国偷拍自产在线麻豆 | 性史性农村dvd毛片 | 少妇久久久久久人妻无码 | 女人被男人躁得好爽免费视频 | 久9re热视频这里只有精品 | 国产美女精品一区二区三区 | 欧美三级a做爰在线观看 | 男女下面进入的视频免费午夜 | 欧美成人免费全部网站 | 国产人妖乱国产精品人妖 | 亚洲阿v天堂在线 | 天天拍夜夜添久久精品大 | 婷婷丁香六月激情综合啪 | 全球成人中文在线 | 中文无码精品a∨在线观看不卡 | ass日本丰满熟妇pics | 亚洲国产欧美日韩精品一区二区三区 | 亚洲精品成人福利网站 | 国产精品久久国产三级国 | 麻豆精品国产精华精华液好用吗 | 国产色在线 | 国产 | 对白脏话肉麻粗话av | 国产精品久免费的黄网站 | 夜夜夜高潮夜夜爽夜夜爰爰 | 又大又紧又粉嫩18p少妇 | 牲交欧美兽交欧美 | 亚洲国产av精品一区二区蜜芽 | 国产高清av在线播放 | 美女扒开屁股让男人桶 | 正在播放老肥熟妇露脸 | 亚洲va欧美va天堂v国产综合 | 无码人妻av免费一区二区三区 | 久青草影院在线观看国产 | 色诱久久久久综合网ywww | 欧美黑人乱大交 | 国产sm调教视频在线观看 | 一个人看的www免费视频在线观看 | 色综合天天综合狠狠爱 | 人妻少妇被猛烈进入中文字幕 | 亚洲人亚洲人成电影网站色 | 在线观看免费人成视频 | 亚洲欧洲日本综合aⅴ在线 | 熟女少妇人妻中文字幕 | 欧洲熟妇色 欧美 | 国产成人无码专区 | 国产精品香蕉在线观看 | 亚洲人成影院在线无码按摩店 | 少妇性荡欲午夜性开放视频剧场 | 岛国片人妻三上悠亚 | 国产乱人偷精品人妻a片 | 爽爽影院免费观看 | 熟妇激情内射com | 国产精品高潮呻吟av久久 | 中文精品久久久久人妻不卡 | 人人超人人超碰超国产 | 爆乳一区二区三区无码 | 国产精品视频免费播放 | 任你躁在线精品免费 | 亚洲国产欧美日韩精品一区二区三区 | 色噜噜亚洲男人的天堂 | 免费人成在线视频无码 | 精品久久8x国产免费观看 | 日韩在线不卡免费视频一区 | 亚洲va中文字幕无码久久不卡 | 中国大陆精品视频xxxx | 亚洲国产精品一区二区第一页 | 乱人伦人妻中文字幕无码久久网 | 熟妇人妻无乱码中文字幕 | 永久黄网站色视频免费直播 | 2019午夜福利不卡片在线 | 狠狠色色综合网站 | 中文字幕av日韩精品一区二区 | 国产 精品 自在自线 | 综合激情五月综合激情五月激情1 | 无码乱肉视频免费大全合集 | 国产超碰人人爽人人做人人添 | 国精产品一品二品国精品69xx | 亚洲另类伦春色综合小说 | 中文亚洲成a人片在线观看 | 熟妇女人妻丰满少妇中文字幕 | 亚洲中文字幕在线观看 | 又大又黄又粗又爽的免费视频 | 精品欧美一区二区三区久久久 | www国产亚洲精品久久网站 | 成人女人看片免费视频放人 | 亚洲色欲久久久综合网东京热 | 无码午夜成人1000部免费视频 | 国产真实夫妇视频 | 成人无码视频免费播放 | 免费乱码人妻系列无码专区 | 小鲜肉自慰网站xnxx | 亚洲人成影院在线观看 | 成人免费无码大片a毛片 | 久久精品女人天堂av免费观看 | 精品一二三区久久aaa片 | 久久久久成人片免费观看蜜芽 | 领导边摸边吃奶边做爽在线观看 | 99riav国产精品视频 |