日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(转)ThreadPoolExecutor最佳实践--如何选择队列

發布時間:2023/12/3 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转)ThreadPoolExecutor最佳实践--如何选择队列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:?https://blog.hufeifei.cn/2018/08/12/Java/ThreadPoolExecutor%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5--%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%E9%98%9F%E5%88%97/?

?

前一篇文章《如何選擇線程數》講了如何決定線程池中線程個數,這篇文章討論“如何選擇工作隊列”。

再次強調一下,ThreadPoolExecutor最核心的四點:

1、當有任務提交的時候,會創建核心線程去執行任務(即使有核心線程空閑);

2、當核心線程數達到corePoolSize時,后續提交的都會進BlockingQueue中排隊;

3、當BlockingQueue滿了(offer失敗),就會創建臨時線程(臨時線程空閑超過一定時間后,會被銷毀);

4、當線程總數達到maximumPoolSize時,后續提交的任務都會被RejectedExecutionHandler拒絕。

1、BlockingQueue

線程池中工作隊列由BlockingQueue實現類提供功能,BlockingQueue定義了這么幾組方法:

Summary of BlockingQueue methods
?Throws exceptionSpecial valueBlocksTimes out
Insertadd(e)offer(e)put(e)offer(e, time, unit)
Removeremove()poll()take()poll(time, unit)
Examineelement()peek()not applicablenot applicable

阻塞隊列是最典型的“生產者消費者”模型:

  • 生產者調用put()方法將生產的元素入隊,消費者調用take()方法;
  • 當隊列滿了,生產者調用的put()方法會阻塞,直到隊列有空間可入隊;
  • 當隊列為空,消費者調用的get()方法會阻塞,直到隊列有元素可消費;

但是需要十分注意的是:ThreadPoolExecutor提交任務時使用offer方法(不阻塞),工作線程從隊列取任務使用take方法(阻塞)。正是因為ThreadPoolExecutor使用了不阻塞的offer方法,所以當隊列容量已滿,線程池會去創建新的臨時線程;同樣因為工作線程使用take()方法取任務,所以當沒有任務可取的時候線程池的線程將會空閑阻塞。

事實上,工作線程的超時銷毀是調用offer(e, time, unit)實現的。

2、JDK提供的阻塞隊列實現

JDK中提供了以下幾個BlockingQueue實現類:

?

2.1、ArrayBlockingQueue

這是一個由數組實現容量固定的有界阻塞隊列。這個隊列的實現非常簡單:

Copy

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 private void enqueue(E x) {final Object[] items = this.items;items[putIndex] = x; // 入隊if (++putIndex == items.length) // 如果指針到了末尾putIndex = 0; // 下一個入隊的位置變為0count++;notEmpty.signal(); // 提醒消費者線程消費 } private E dequeue() {final Object[] items = this.items;@SuppressWarnings("unchecked")E x = (E) items[takeIndex];items[takeIndex] = null; // 出隊置空if (++takeIndex == items.length) // 如果指針到了末尾takeIndex = 0; // 下一個出隊的位置變為0count--;if (itrs != null)itrs.elementDequeued();notFull.signal(); // 提醒生產者線程生產return x; }

通過簡單的指針循環實現了一個環形隊列:

下面有一張維基百科關于環形緩沖區的的動畫,雖然動畫描述內容與ArrayBlockingQueue實現有所差異,但貴在生動形象(著實找不到更好的動畫了)。

ArrayBlockingQueue主要復雜在迭代,允許迭代中修改隊列(刪除元素時會更新迭代器),并不會拋出ConcurrentModificationException;好在大多數場景中我們不會迭代阻塞隊列。

2.2、SynchronousQueue

這是一個非常有意思的集合,更準確的說它并不是一個集合容器,因為它沒有容量。你可以“偷偷地”把它看作new ArrayBlockingQueue(0),之所以用”偷偷地”這么齷齪的詞,首先是因為ArrayBlockingQueue在capacity<1時會拋異常,其次ArrayBlockingQueue(0)并不能實現SynchronousQueue這么強大的功能。

正如SynchronousQueue的名字所描述一樣——“同步隊列”,它專門用于生產者線程與消費者線程之間的同步

  • 因為它任何時候都是空的,所以消費者線程調用take()方法的時候就會發生阻塞,直到有一個生產者線程生產了一個元素,消費者線程就可以拿到這個元素并返回。
  • 同樣的,你也可以認為任何時候都是滿的,所以生產者線程調用put()方法的時候就會發生阻塞,直到有一個消費者線程消費了一個元素,生產者才會返回。

另外還有幾點需要注意:

  • SynchronousQueue不能遍歷,因為它沒有元素可以遍歷;
  • 所有的阻塞隊列都不允許插入null元素,因為當生產者生產了一個null的時候,消費者調用poll()返回null,無法判斷是生產者生產了一個null元素,還是隊列本身就是空。

CachedThreadPool使用的就是同步隊列

Copy

1 2 3 4 5 public static ExecutorService newCachedThreadPool() {return new ThreadPoolExecutor(0, Integer.MAX_VALUE,60L, TimeUnit.SECONDS,new SynchronousQueue<Runnable>()); }

因為SynchronousQueue無容量的特性,所以CachedThreadPool不會對任務進行排隊,如果線程池中沒有空閑線程,CachedThreadPool會立即創建一個新線程來接收這個任務。

所以使用CachedThreadPool要注意避免提交長時間阻塞的任務,可能會由于線程數過多而導致內存溢出(OutOfOutOfMemoryError)。

2.3、LinkedBlockingQueue

這是一個由單鏈表實現默認無界的阻塞隊列。LinkedBlockingQueue提供了一個可選有界的構造函數,而在未指明容量時,容量默認為Integer.MAX_VALUE。

按照官方文檔的說法LinkedBlockingQueue是一種可選有界(optionally-bounded)阻塞隊列

SingleThreadPool和FixedThreadPool使用的就是LinkedBlockingQueue

Copy

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public static ExecutorService newFixedThreadPool(int nThreads) {return new ThreadPoolExecutor(nThreads, nThreads,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>()); } public static ExecutorService newFixedThreadPool(int nThreads, ThreadFactory threadFactory) {return new ThreadPoolExecutor(nThreads, nThreads,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>(),threadFactory); } public static ExecutorService newSingleThreadExecutor() {return new FinalizableDelegatedExecutorService(new ThreadPoolExecutor(1, 1,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>())); } public static ExecutorService newSingleThreadExecutor(ThreadFactory threadFactory) {return new FinalizableDelegatedExecutorService(new ThreadPoolExecutor(1, 1,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>(),threadFactory)); }

因為FixedThreadPool使用無界的LinkedBlockingQueue,所以當沒有線程空閑時,新提交的任務都會提交到阻塞隊列中,由于隊列永遠也不會滿,FixedThreadPool永遠也不會創建新的臨時線程。

但是需要注意的是,不要往FixedThreadPool提交過多的任務,因為所有未處理的任務都會到LinkedBlockingQueue中排隊,隊列中任務過多也可能會導致內存溢出。雖然這個過程會比較緩慢,因為隊列中的請求所占用的資源比線程占用的資源要少得多。

2.4、其他隊列

DelayQueue和PriorityBlockingQueue底層都是使用二叉堆實現優先級阻塞隊列

區別在于:

  • 前者要求隊列中的元素實現Delayed接口,通過執行時延從隊列中提取任務,時間沒到任務取不出來;
  • 后者對元素沒有要求,可以實現Comparable接口也可以提供Comparator來對隊列中的元素進行比較,跟時間沒有任何關系,僅僅是按照優先級取任務。

當我們提交的任務有優先順序時可以考慮選用這兩種隊列

事實上ScheduledThreadPoolExecutor內部實現了一個類似于DelayQueue的隊列。

除了這兩個,BlockingQueue還有兩個子接口BlockingDeque(雙端阻塞隊列),TransferQueue(傳輸隊列)

并且兩個接口都有自己唯一的實現類:

?

  • LinkedBlockingDeque:使用雙向隊列實現的雙端阻塞隊列,雙端意味著可以像普通隊列一樣FIFO(先進先出),可以以像棧一樣FILO(先進后出)
  • LinkedTransferQueue:它是ConcurrentLinkedQueue、LinkedBlockingQueue和SynchronousQueue的結合體,但是把它用在ThreadPoolExecutor中,和無限制的LinkedBlockingQueue行為一致。

?

3、讓生產者阻塞的線程池

前面說到CachedThreadPool和FixedThreadPool都有可能導致內存溢出,前者是由于線程數過多,后者是由于隊列任務過多。而究其根本就是因為任務生產速度遠大于線程池處理任務的速度。

所以有一個想法就是讓生產任務的線程在任務處理不過來的時候休息一會兒——也就是阻塞住任務生產者。

但是前面提到過ThreadPoolExecutor內部將任務提交到隊列時,使用的是不阻塞的offer方法。

我提供的第一種方式是:重寫offer方法把它變成阻塞式。

3.1、重寫BlockingQueue的offer

這種處理方式是將原來非阻塞的offer覆蓋,使用阻塞的put方法實現。

Copy

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 public class ThreadPoolTest {private static class Task implements Runnable {private int taskId;Task(int taskId) {this.taskId = taskId;}@Override public void run() {try {TimeUnit.SECONDS.sleep(3);} catch (InterruptedException ignore) {}System.out.println("task " + taskId + " end");}}public static void main(String[] args) {ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 2, 0, TimeUnit.SECONDS,new ArrayBlockingQueue<Runnable>(2) {@Override public boolean offer(Runnable runnable) {try {super.put(runnable); // 使用阻塞的put重寫offer方法} catch (InterruptedException e) {e.printStackTrace();}return true;}});threadPool.submit(new Task(1));System.out.println("task 1 submitted");threadPool.submit(new Task(2));System.out.println("task 2 submitted");threadPool.submit(new Task(3));System.out.println("task 3 submitted");threadPool.submit(new Task(4));System.out.println("task 4 submitted");threadPool.submit(new Task(5));System.out.println("task 5 submitted");threadPool.submit(new Task(6));System.out.println("task 6 submitted");threadPool.shutdown();}}

執行的過程中會發現Task5要等到線程池中的一個任務執行完成后,才能提交成功。

這種方式把BlockingQueue的行為修改了,這時線程池的maximumPoolSize形同虛設,因為ThreadPoolExecutor調用offer入隊失敗返回false后才會創建臨時線程。現在offer改成了阻塞式的,實際上永遠是返回true,所以永遠都不會創建臨時線程,maximumPoolSize的限制也就沒有什么意義了。

3.2、重寫拒絕策略

在介紹第二種方式之前,先簡單介紹JDK中提供了四種拒絕策略:

?

  • AbortPolicy——拋出RejectedExecutionException異常的方式拒絕任務。
  • DiscardPolicy——什么都不干,靜默地丟棄任務
  • DiscardOldestPolicy——把隊列中最老的任務拿出來扔掉
  • CallerRunsPolicy——在任務提交的線程把任務給執行了

ThreadPoolExecutor默認使用AbortPolicy

DiscardPolicy和DiscardOldestPolicy兩種策略看上去都不怎么靠譜,除非真有這種特別的需求,比如客戶端應用中網絡請求擁堵(服務端宕機或網絡不通暢)的話可以選擇拋棄最老的請求,大多數情況還是使用默認的拒絕策略。

我們的第二種做法就是寫一個自己的RejectedExecutionHandler。這種方式相對“溫柔”一些,在線程池提交任務的最后一步——被線程池拒絕的任務,可以在拒絕后調用隊列的put()方法,讓任務的提交者阻塞,直到隊列中任務被被線程池執行后,隊列有了多余空間,調用方才返回。

Copy

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 public class ThreadPoolTest {private static class Task implements Runnable {private int taskId;Task(int taskId) {this.taskId = taskId;}@Overridepublic void run() {try {TimeUnit.SECONDS.sleep(3);} catch (InterruptedException ignore) {}System.out.println("task " + taskId + " end");}}private static class BlockCallerPolicy implements RejectedExecutionHandler {@Overridepublic void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {try {executor.getQueue().put(r);} catch (InterruptedException e) {e.printStackTrace();}}}public static void main(String[] args) {ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 2, 0, TimeUnit.SECONDS,new ArrayBlockingQueue<>(2), new BlockCallerPolicy());threadPool.submit(new Task(1));System.out.println("task 1 submitted");threadPool.submit(new Task(2));System.out.println("task 2 submitted");threadPool.submit(new Task(3));System.out.println("task 3 submitted");threadPool.submit(new Task(4));System.out.println("task 4 submitted");threadPool.submit(new Task(5));System.out.println("task 5 submitted");threadPool.submit(new Task(6));System.out.println("task 6 submitted");threadPool.shutdown();}}

使用這種方式的好處是線程池仍可以設置maximumPoolSize,當任務入隊失敗仍可以創建臨時線程執行任務,只有當線程總數大于maximumPoolSize時,任務才會被拒絕。

4、Tomcat中的線程池

作為一個最常用的Java應用服務器之一,Tomcat中線程池還是值得我們借鑒學習的。

注意下面代碼來自Tomcat8.5.27,版本不同實現可能略有差異

org.apache.catelina.core.StandardThreadExecutor

Copy

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 public class StandardThreadExecutor extends LifecycleMBeanBaseimplements Executor, ResizableExecutor {// Tomcat線程池默認的配置protected int threadPriority = Thread.NORM_PRIORITY;protected boolean daemon = true;protected String namePrefix = "tomcat-exec-";protected int maxThreads = 200;protected int minSpareThreads = 25;protected int maxIdleTime = 60000;...protected boolean prestartminSpareThreads = false;protected int maxQueueSize = Integer.MAX_VALUE;protected void startInternal() throws LifecycleException {// 任務隊列:這里你看到的是一個無界隊列,但是隊列里面進行了特殊處理taskqueue = new TaskQueue(maxQueueSize);TaskThreadFactory tf = new TaskThreadFactory(namePrefix,daemon,getThreadPriority());// 創建線程池,這里的ThreadPoolExecutor是Tomcat繼承自JDK的ThreadPoolExecutorexecutor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), // 核心線程數與最大線程數maxIdleTime, TimeUnit.MILLISECONDS, // 默認6萬毫秒的超時時間,也就是一分鐘taskqueue, tf); // 玄機在任務隊列的設置executor.setThreadRenewalDelay(threadRenewalDelay);if (prestartminSpareThreads) {executor.prestartAllCoreThreads(); // 預熱所有的核心線程}taskqueue.setParent(executor);setState(LifecycleState.STARTING);}... }

org.apache.tomcat.util.threads.ThreadPoolExecutor

Copy

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 public class ThreadPoolExecutor extends java.util.concurrent.ThreadPoolExecutor {private final AtomicInteger submittedCount = new AtomicInteger(0);private final AtomicLong lastContextStoppedTime = new AtomicLong(0L);private final AtomicLong lastTimeThreadKilledItself = new AtomicLong(0L);@Overrideprotected void afterExecute(Runnable r, Throwable t) {submittedCount.decrementAndGet(); // 執行完成后提交數量減一if (t == null) {// 如果有必要拋個異常讓線程終止stopCurrentThreadIfNeeded();}}@Overridepublic void execute(Runnable command) {execute(command,0,TimeUnit.MILLISECONDS);}public void execute(Runnable command, long timeout, TimeUnit unit) {submittedCount.incrementAndGet(); // 提交時數量加一try {super.execute(command);} catch (RejectedExecutionException rx) {if (super.getQueue() instanceof TaskQueue) {final TaskQueue queue = (TaskQueue)super.getQueue();try {// 如果任務被拒絕,則強制入隊if (!queue.force(command, timeout, unit)) {// 由于TaskQueue默認無界,所以默認強制入隊會成功submittedCount.decrementAndGet();throw new RejectedExecutionException("Queue capacity is full.");}} catch (InterruptedException x) {submittedCount.decrementAndGet(); // 任務被拒絕,任務數減一throw new RejectedExecutionException(x);}} else {submittedCount.decrementAndGet(); // 任務被拒絕,任務數減一throw rx;}}} }

org.apache.tomcat.util.threads.TaskQueue

Copy

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 public class TaskQueue extends LinkedBlockingQueue<Runnable> {private volatile ThreadPoolExecutor parent = null;public boolean force(Runnable o) {if ( parent==null || parent.isShutdown() )throw new RejectedExecutionException("Executor not running, can't force a command into the queue");// 因為LinkedBlockingQueue無界,所以調用offer強制入隊return super.offer(o);}public boolean force(Runnable o, long timeout, TimeUnit unit) throws InterruptedException {if ( parent==null || parent.isShutdown() )throw new RejectedExecutionException("Executor not running, can't force a command into the queue");return super.offer(o,timeout,unit);}@Overridepublic boolean offer(Runnable o) {// 不是上面Tomcat中定義地ThreadPoolExecutor,不做任何檢查if (parent==null) return super.offer(o);// 線程數達到最大線程數,嘗試入隊if (parent.getPoolSize() == parent.getMaximumPoolSize()) return super.offer(o);// 提交的任務數小于線程數,也就是有空余線程,入隊讓空閑線程取任務if (parent.getSubmittedCount() < parent.getPoolSize()) return super.offer(o);// 走到這說明線程池沒有空閑線程// 這里返回false,改變了LinkedBlockingQueue默認的行為// 使得Tomcat可以創建臨時線程if (parent.getPoolSize() < parent.getMaximumPoolSize()) return false;// 到這里說明臨時線程也沒有空閑,只能排隊了return super.offer(o);} }

Tomcat的線程池擴展了JDK線程池的功能,主要體現在兩點:

  • Tomcat的ThreadPoolExecutor使用的TaskQueue,是無界的LinkedBlockingQueue,但是通過taskQueue的offer方法覆蓋了LinkedBlockingQueue的offer方法,改寫了規則,使得線程池能在任務較多的情況下增長線程池數量——JDK是先排隊再漲線程池,Tomcat則是先漲線程池再排隊。
  • Tomcat的ThreadPoolExecutor改寫了execute方法,當任務被reject時,捕獲異常,并強制入隊。

參考鏈接:

支持生產阻塞的線程池 :http://ifeve.com/blocking-threadpool-executor/

Disruptor框架:http://lmax-exchange.github.io/disruptor/files/Disruptor-1.0.pdf

線程池調整的重要性:https://blog.bramp.net/post/2015/12/17/the-importance-of-tuning-your-thread-pools/

線程池調整的重要性(譯):http://www.importnew.com/17633.html

SynchronousQueue與TransferQueue的區別:https://stackoverflow.com/questions/7317579/difference-between-blockingqueue-and-transferqueue/7317650

Tomcat配置線程池:https://tomcat.apache.org/tomcat-8.5-doc/config/executor.html

總結

以上是生活随笔為你收集整理的(转)ThreadPoolExecutor最佳实践--如何选择队列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

黄色免费在线视频 | 字幕网资源站中文字幕 | 天天操天天射天天爽 | 日韩精品视频久久 | 黄色在线看网站 | 亚洲精品在线资源 | 国产一级电影网 | 在线观看黄色免费视频 | av在线网站大全 | 日韩理论视频 | 看片一区二区三区 | 久久久av电影 | 久久精国产 | 欧美精品久久久久久久久老牛影院 | 天天操天天射天天 | 日韩一二三在线 | 91在线91| 人人舔人人爱 | 国产精品丝袜 | 国产精品高清免费在线观看 | 中文字幕中文字幕 | 天天干天天插伊人网 | 五月婷婷丁香 | 久久免费在线观看视频 | 国产精品一区二区三区四区在线观看 | 日韩中文字幕免费在线观看 | 国产精品久久久久高潮 | 麻豆 videos| 在线观看一区视频 | 久久伦理电影 | 99免费看片 | 少妇bbbb| 超碰在线人人艹 | 97超碰精品 | 在线韩国电影免费观影完整版 | www.国产高清 | 欧美亚洲专区 | 片网址| 国产精品久久久久免费观看 | 97超级碰| 亚洲爱av| www.com操| 一区二区三区在线观看免费 | 精品国产乱码久久 | 国产在线精品视频 | 久草在线视频国产 | 国产又粗又猛又爽又黄的视频先 | www.天天色 | 久久精品一级片 | www.av中文字幕.com | 国产精品少妇 | 在线观看91精品视频 | 久久手机看片 | 91麻豆网站 | 亚洲精品中文字幕在线观看 | 丁香视频在线观看 | 天天操天天摸天天爽 | 在线中文视频 | 国产99久久九九精品 | 中国成人一区 | 人人爱天天操 | 久久欧洲视频 | 久久久久国产一区二区 | 国产在线视频资源 | 国产手机视频在线播放 | 日日日干 | 91亚洲精品久久久蜜桃网站 | 国产精品男女 | 精品国自产在线观看 | 日本黄色免费在线观看 | 国产在线观看地址 | 在线亚洲成人 | 婷婷丁香激情网 | 中文字幕婷婷 | 久久婷婷视频 | 中文字幕传媒 | 在线观看黄色 | 亚洲视频精品在线 | 四虎国产精品成人免费4hu | 玖玖爱国产在线 | 国产福利精品一区二区 | 麻豆视频免费入口 | 中文字幕 国产专区 | 一区 二区 精品 | 亚洲欧美国产精品 | 国产精品久久久久久久毛片 | 欧美日韩久久不卡 | 亚洲天天在线日亚洲洲精 | 国产免费又粗又猛又爽 | 91精品久久久久久久久久久久久 | 日日日操 | 日韩成人精品在线观看 | 国产91在线观看 | 国产成人久久久久 | 精品1区2区3区 | 国产91精品在线播放 | 精品国产免费看 | 久久精品成人热国产成 | 色一色在线| 黄色免费国产 | 九九久久免费视频 | 一区二区三区免费在线 | 精品国产一区二区三区免费 | 亚洲精品啊啊啊 | 精品亚洲欧美无人区乱码 | 国产精品福利一区 | 久久亚洲专区 | 91精品视屏 | 精品久久一级片 | 这里只有精品视频在线观看 | 色悠悠久久综合 | h动漫中文字幕 | 1024手机在线看 | 国产在线中文 | 91在线porny国产在线看 | 国产一二三区在线观看 | 色激情五月 | 91视频3p| 日韩免费视频 | 久久全国免费视频 | 一区二区三区四区免费视频 | 国产中文字幕久久 | 激情视频免费在线 | 日韩av在线看 | 亚洲 精品在线视频 | 国产一区二区午夜 | www.久久com | av片中文 | 丁香花中文字幕 | 成人h视频在线 | 国产高清视频 | 久久99国产综合精品 | 久久久久国产a免费观看rela | 国产成人精品a | 免费a v观看 | 国产日产欧美在线观看 | 色婷婷视频在线 | 国产无套精品久久久久久 | 国产成人精品综合 | 日本中文字幕视频 | 毛片网在线播放 | 国产精品igao视频网网址 | 久久99精品久久久久久秒播蜜臀 | 日本一区二区三区免费观看 | 婷婷六月天综合 | 日韩av在线资源 | 在线av资源 | 97超碰网 | www.888av | 波多野结衣在线观看视频 | 久久97久久97精品免视看 | 视频国产精品 | 97国产情侣爱久久免费观看 | 国内偷拍精品视频 | 久久精品一二区 | 国产一区二区在线免费视频 | 91精品久久香蕉国产线看观看 | a在线免费观看视频 | 日韩有码在线播放 | 国产精品专区h在线观看 | 91大神dom调教在线观看 | 亚洲精品1234区 | 看毛片的网址 | 日韩高清一区二区 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 黄色大全在线观看 | 美女久久久久久久久久久 | 男女啪啪视屏 | 日韩精品视频免费看 | 丁香六月欧美 | 99久久精品国产观看 | 中文字幕在线视频一区二区三区 | 日韩在线三级 | 精品国产一区二区三区不卡 | 毛片网在线观看 | 免费色视频网站 | 人人澡人摸人人添学生av | 天天插视频 | 亚州精品在线视频 | 欧美日韩中文字幕视频 | 日韩在线网 | 国产精品久久久影视 | 四虎国产精品免费 | 国产精品久久精品 | 国产情侣一区 | 免费合欢视频成人app | 国产资源在线免费观看 | 91av在线看 | 久久午夜视频 | 亚洲国产三级在线 | 免费在线观看一区 | 日韩av成人在线观看 | 久久无码av一区二区三区电影网 | 久久影院亚洲 | 欧美一区中文字幕 | 夜夜夜夜操 | 国产黄a三级三级三级三级三级 | 五月激情婷婷丁香 | 97超级碰碰碰碰久久久久 | 精品中文字幕在线播放 | 国产在线免费 | 99久久精品国产毛片 | 男女靠逼app| 精品九九久久 | 国产一区高清在线 | 欧美日韩视频免费 | 99爱国产精品 | www.xxxx变态.com| 国产精品高清在线 | 久久久久久久久久网站 | 国产在线国偷精品产拍免费yy | www.色爱 | 97超碰在线人人 | 精品在线观 | 亚洲jizzjizz日本少妇 | 国产一级在线播放 | 超碰在线1| 久九视频| 久久久久网站 | av黄网站 | 免费观看成年人视频 | 91人人视频在线观看 | 狠狠狠干狠狠 | 亚洲最新av在线网站 | 成人h动漫在线看 | 91av在线播放 | 久久99中文字幕 | 17videosex性欧美 | 成年人视频在线免费播放 | 黄av在线| 久草久热 | 精品一二三四视频 | 久久五月情影视 | 日韩电影一区二区在线观看 | 97精品视频在线 | 日韩欧三级 | 午夜免费久久看 | 久久久福利影院 | 久久精品亚洲 | 五月天婷婷丁香花 | 成人9ⅰ免费影视网站 | 玖玖国产精品视频 | 久久都是精品 | 色在线视频 | 欧美另类tv | 国产精品久久久精品 | 国产又粗又猛又爽又黄的视频免费 | 国产91对白在线 | 中文字幕乱码亚洲精品一区 | 六月丁香在线观看 | 中文国产成人精品久久一 | 国产综合在线视频 | 人人草在线观看 | 欧美色伊人| 99产精品成人啪免费网站 | 久久精品欧美一区二区三区麻豆 | 久草在线精品观看 | 涩涩爱夜夜爱 | av成人资源 | 黄色大全免费网站 | 欧美999 | 成年人免费在线播放 | 久草视频在 | 色婷婷综合久色 | 18久久久久 | 夜夜视频 | 国产成人精品电影久久久 | 91一区啪爱嗯打偷拍欧美 | 久久午夜精品视频 | 日本丶国产丶欧美色综合 | 日韩视频一二三区 | 国产在线一线 | 日本最新高清不卡中文字幕 | 欧美精品免费视频 | 色天天综合久久久久综合片 | 五月婷婷中文网 | 手机av在线不卡 | 成人午夜剧场在线观看 | av在线免费在线观看 | 亚洲一区免费在线 | 久久成年视频 | 日日干天天射 | 毛片www| 天天玩天天干天天操 | 偷拍区另类综合在线 | 六月丁香久久 | 亚洲视频 一区 | 日日干网址 | 国产精品一区二区在线观看免费 | 97超碰在线资源 | 国产不卡高清 | 97精品国产91久久久久久久 | 日韩av高清 | 亚洲欧洲中文日韩久久av乱码 | 色在线最新| 久久96国产精品久久99漫画 | 国产婷婷精品av在线 | 免费a网| 久久天天躁 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 一区二区三区电影 | 中文字幕成人在线 | 免费人成在线观看网站 | 在线日本v二区不卡 | 国产一区二区三区高清播放 | 婷婷色在线观看 | 午夜久久视频 | 在线观看视频91 | 欧美aa级 | 欧美做受xxx | 国产一级免费在线 | 亚洲国产播放 | 国产视频每日更新 | 五月天六月婷婷 | 超薄丝袜一二三区 | 精品女同一区二区三区在线观看 | 激情一区二区三区欧美 | 国产精品久久久久久久久久99 | 一二三区高清 | 91成人破解版 | 91在线视频精品 | 黄色a一级片 | 天天操天天干天天操天天干 | 亚洲精选视频在线 | 超碰97成人 | 日韩一区二区免费视频 | 久久人人爽爽人人爽人人片av | 亚洲综合激情 | 日韩中字在线观看 | 久久久免费视频播放 | 久草在线视频国产 | 日韩免费看的电影 | 成人黄色小说在线观看 | 日韩和的一区二在线 | 丁香婷婷激情 | 蜜臀av性久久久久av蜜臀妖精 | 免费在线a | 综合久久久久久久 | 欧美一区二区伦理片 | 五月天激情视频 | 99国产精品久久久久老师 | 国内精品小视频 | 美女福利视频在线 | 亚洲精品人人 | 国产一级在线观看视频 | av在线收看 | 黄色www免费 | 国产精品久久久 | 91精品国产综合久久福利不卡 | 成人a v视频 | 国产精品网红福利 | 国产精品女视频 | 国产精品久久久久久久久久免费看 | 国产精品涩涩屋www在线观看 | 大型av综合网站 | 成人免费在线视频观看 | 97精产国品一二三产区在线 | av福利第一导航 | 亚洲日本激情 | jizzjizzjizz亚洲 | 97av视频在线观看 | 欧美日韩国产一二三区 | 久草免费福利在线观看 | 日韩在线一区二区免费 | 一区二区三区四区五区六区 | 国产日产亚洲精华av | 精品免费一区二区三区 | 天天操夜夜想 | 国产亚洲精品bv在线观看 | 日韩久久精品一区二区 | 免费大片黄在线 | 黄色美女免费网站 | 精品免费99久久 | 天天操天天操天天 | 亚洲aⅴ免费在线观看 | 看黄色91 | 亚洲成av人电影 | 色婷婷综合久久久久中文字幕1 | 婷婷丁香社区 | 成人av网站在线播放 | 精品国产一区二区三区蜜臀 | 亚洲狠狠 | 在线观看岛国 | 婷婷国产一区二区三区 | 啪啪免费视频网站 | 精品国产黄色片 | 亚洲黄色小说网址 | www夜夜 | 亚洲成av人影片在线观看 | 狠狠色丁香婷婷综合视频 | 一区二区三区四区不卡 | 亚洲va欧美| 青草视频在线 | 久久久成人精品 | 国产三级精品三级在线观看 | 黄色视屏av | www.人人草 | 国产成人久 | 视频二区在线 | 天天综合在线观看 | 国产欧美精品一区二区三区 | 久久免费国产精品 | 国产午夜在线观看 | 亚洲国产97在线精品一区 | 久久综合99| 日韩在线一二三区 | 911香蕉| 久久久久久久久久久久久久免费看 | 精品亚洲免费 | 国产精品免费久久久 | 天天操天天操一操 | 久久精品视频在线免费观看 | 日日干夜夜爱 | 91激情| 黄色小说免费在线观看 | 国产精品国产三级国产不产一地 | 人人插人人舔 | 二区三区av | 91香蕉视频在线下载 | 日韩精品免费一区二区在线观看 | 992tv在线观看网站 | 国产精品成人久久 | 国产精品成人一区二区 | 这里只有精彩视频 | 亚洲欧美精品一区 | 国产精品亚洲精品 | 麻豆手机在线 | 国产精品美女www爽爽爽视频 | 色综合天天综合 | 美女网站视频久久 | 91日本在线播放 | 在线观看理论 | 69精品在线 | 久草视频播放 | 国产一级片一区二区三区 | 午夜久久网站 | 久久国产精品第一页 | 国产精品理论在线观看 | 亚洲伦理精品 | 国内综合精品午夜久久资源 | 人人插人人草 | 欧美成人aa | 国产手机在线观看 | 日韩欧美xxxx | 国产成人高清av | 91av在线免费看 | 久久人人爽人人 | av福利第一导航 | 国产中文欧美日韩在线 | 2019中文字幕网站 | 国产成人高清在线 | 国产三级在线播放 | 在线国产激情视频 | 狠狠干.com | 国偷自产中文字幕亚洲手机在线 | 色视频网址| 久久国产福利 | 99色在线观看 | av免费看看 | 久久久久久久国产精品 | 天天射综合网视频 | 日韩天堂在线观看 | 久久一区二区三区超碰国产精品 | 国产免费不卡 | 一区二区三区日韩在线观看 | 欧美动漫一区二区三区 | 久草在线99| 日本aa在线 | 超碰97人人射妻 | 手机av资源 | 欧美另类交人妖 | 亚洲精品国产精品久久99热 | 91久久久久久久一区二区 | 在线有码中文 | 日韩激情小视频 | 免费av网站在线看 | 丝袜足交在线 | 欧美日韩国产在线精品 | 亚洲一区免费在线 | 亚洲男男gaygayxxxgv | 亚洲成人av一区 | 日本99精品 | 亚洲精品动漫久久久久 | 日韩久久在线 | 伊人婷婷色 | 99久久久久免费精品国产 | 五月天高清欧美mv | 91av久久| 亚洲最新视频在线播放 | 深爱五月激情网 | 国产在线精品一区二区三区 | 免费看黄的 | 久久久国产精品电影 | 欧美国产日韩一区二区三区 | 久草手机视频 | 免费在线电影网址大全 | 国产精品久久久久久久久久久杏吧 | 国产69精品久久久久99 | 操处女逼 | 91在线免费视频观看 | 91中文在线观看 | 久久高清精品 | 色亚洲网 | 精品美女久久久久 | 国产精品免费久久久久 | 久草免费在线观看视频 | 国产精品综合在线观看 | 日本精品小视频 | 亚洲va韩国va欧美va精四季 | 日韩免费播放 | 欧美ⅹxxxxxx | 国际精品久久久 | 在线观看第一页 | 亚洲精品久久久久久久蜜桃 | 久草免费资源 | 国产不卡精品 | 97超碰色偷偷 | 日韩三级精品 | 久久国产成人午夜av影院宅 | 人人爽人人爽 | av观看免费在线 | 久久久精品国产一区二区电影四季 | 日韩av电影中文字幕在线观看 | 911香蕉视频 | 97精品国产97久久久久久久久久久久 | 国产免费中文字幕 | 国产精品va视频 | 日韩一区二区三区高清在线观看 | 日韩a欧美 | 国产99久久久国产精品免费看 | 亚洲最大免费成人网 | 久久一区二区三区国产精品 | 人人干人人搞 | 色综合久久久久综合体桃花网 | 色94色欧美| 又大又硬又黄又爽视频在线观看 | 免费久久久久久久 | 狠狠躁夜夜a产精品视频 | 1024手机看片国产 | 99热日本 | 成人在线免费视频 | 日韩动漫免费观看高清完整版在线观看 | 91插插影库 | 国产精品99久久久久久久久久久久 | 久久公开视频 | 97激情影院| 国产精品美女久久久 | 国产成人在线精品 | 丁香婷婷综合激情五月色 | 人人草人 | 国产高清在线观看av | 国产一线在线 | 免费网站观看www在线观看 | 中文字幕999 | 2020天天干夜夜爽 | 成 人 黄 色 视频 免费观看 | 99在线视频播放 | 午夜精品久久久久久99热明星 | 午夜国产福利视频 | 久久综合久久综合这里只有精品 | 91精品在线观看视频 | 最新一区二区三区 | 欧美日韩精品影院 | 欧美成人精品欧美一级乱黄 | 亚洲综合小说 | 深爱婷婷久久综合 | 成人在线视频网 | 日韩色中色 | 国产在线不卡 | 天天曰天天射 | 久久成熟 | 天天透天天插 | 国产精品视频免费在线观看 | 九热在线 | 久久精品久久久久电影 | 中文字幕一区在线 | 日韩视频一区二区三区在线播放免费观看 | 91最新在线观看 | 狠狠色噜噜狠狠狠狠2022 | 丁香花在线视频观看免费 | 五月婷婷综合激情 | 精品久久久久亚洲 | 999久久国产精品免费观看网站 | 久久久香蕉视频 | 中文字幕韩在线第一页 | 久久av福利 | 激情五月在线 | 成人精品影视 | 日本韩国精品一区二区在线观看 | 美女在线免费视频 | 九九视频免费在线观看 | 国产成人一区二区三区电影 | 国产98色在线 | 日韩 | 精品国产一区二区三区久久久 | 视频三区 | 久久久999精品视频 国产美女免费观看 | 一本到在线 | 国产精品久久久久av福利动漫 | 欧美激情另类 | 日韩一区二区三 | 99久久精品国产系列 | 四虎永久免费网站 | 日韩免费观看视频 | 精品久久久久久亚洲综合网站 | 免费在线观看一区二区三区 | 亚洲视频在线观看免费 | 懂色av懂色av粉嫩av分享吧 | 国内外成人在线视频 | 又爽又黄又无遮挡网站动态图 | 激情五月综合网 | 激情婷婷久久 | 99久久一区 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 91精品国产99久久久久久红楼 | 特级西西444www大胆高清无视频 | 国产午夜影院 | 1000部国产精品成人观看 | 日韩成人免费在线电影 | 91丨九色丨蝌蚪丨老版 | 亚洲一二三久久 | 国产原创在线视频 | 国产亚洲精品bv在线观看 | 日本久久精品视频 | 天天精品视频 | 国产在线精品一区二区三区 | 精品国产综合区久久久久久 | 欧美日韩免费在线观看视频 | 精品1区2区| 精品一区二区影视 | 婷婷久久综合九色综合 | 日本中文字幕影院 | 国产欧美精品xxxx另类 | 精品国产区 | 四虎国产永久在线精品 | 日本中文字幕在线免费观看 | 日韩在线资源 | 色偷偷88888欧美精品久久 | 日韩精品91偷拍在线观看 | 日本中文乱码卡一卡二新区 | 色婷婷综合五月 | 国产.精品.日韩.另类.中文.在线.播放 | 亚洲精品高清一区二区三区四区 | 99久久日韩精品免费热麻豆美女 | 欧美国产日韩一区二区三区 | 亚洲三级在线免费观看 | 欧美乱码精品一区二区 | 婷婷丁香花五月天 | 韩国精品视频在线观看 | 中文字幕文字幕一区二区 | 日日夜夜天天人人 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产精品永久久久久久久久久 | 在线视频你懂 | 欧美日韩高清 | 91在线国产观看 | 手机av在线网站 | 亚洲成aⅴ人片久久青草影院 | 97久久久免费福利网址 | 久久情侣偷拍 | 天天色天天上天天操 | 深夜免费福利 | 国产福利91精品一区 | 亚洲第一成网站 | 91精品老司机久久一区啪 | 日日爽天天 | 国模精品在线 | 特级西西444www大精品视频免费看 | 97成人啪啪网 | 99在线视频网站 | 欧美精品在线观看免费 | 亚州人成在线播放 | 成人影片免费 | 一区二区精品在线观看 | 成年美女黄网站色大片免费看 | 日韩午夜电影 | 精品国内自产拍在线观看视频 | 欧美综合色在线图区 | 久久免费看 | 人成在线免费视频 | 丁香六月激情 | 国产视频欧美视频 | 日韩在线影视 | 色综合天天综合网国产成人网 | 日日干夜夜草 | 久久综合久久综合久久 | 国产一区二区中文字幕 | 日日爱视频 | av在线专区 | 欧美一级裸体视频 | 国产黄色精品在线 | 精品免费国产一区二区三区四区 | 在线亚洲激情 | 国产精品久久久久影院 | 久久精品精品电影网 | 久久久久亚洲国产精品 | 亚洲精品视频在线播放 | 狠日日 | 91中文字幕永久在线 | 色视频在线观看免费 | 免费成人av在线看 | 伊人午夜视频 | 亚洲高清久久久 | 欧美另类调教 | 激情综合五月天 | 手机av电影在线 | 98福利在线 | 国产福利一区二区三区在线观看 | 欧美老人xxxx18 | 五月天激情电影 | 国产精品美女 | 色妞色视频一区二区三区四区 | 成年人app网址 | 91麻豆精品国产91久久久更新时间 | 欧洲精品在线视频 | 久久久久久久看片 | 激情av在线播放 | 亚洲黄色免费网站 | 99精品视频一区 | 免费看色网站 | 日韩av影视在线 | 精品一区二区在线观看 | 婷婷五天天在线视频 | 精品国产伦一区二区三区观看方式 | 在线久热 | 六月婷操 | 97偷拍在线视频 | www久 | 91av电影在线 | 亚洲成人网av | 国产高清成人在线 | 五月天婷婷在线观看视频 | 国产无吗一区二区三区在线欢 | 最近免费中文字幕 | 国产精品久久久久久久午夜片 | 91免费在线看片 | 国产xx视频 | 福利视频区 | 97超碰人 | 欧美精品乱码久久久久久按摩 | 国产精品一区二区av影院萌芽 | 中文字幕在线视频第一页 | 成 人 a v天堂| 日本在线观看中文字幕 | 日韩在线视频免费播放 | 91香蕉视频720p| 色婷婷国产精品一区在线观看 | av超碰在线观看 | 亚洲免费公开视频 | 91在线免费观看网站 | 亚洲五月婷| 国产在线v | 亚洲一区二区三区91 | 亚洲天堂精品 | 日韩中文字幕在线不卡 | 婷婷资源站 | 精品国产免费久久 | 日韩一区二区三区免费视频 | 日韩欧美国产激情在线播放 | 亚洲视频免费 | 亚洲在线黄色 | 奇米网网址 | 韩国av免费 | 天天射天天搞 | 精品视频在线观看 | 日韩国产精品久久久久久亚洲 | 91精品秘密在线观看 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 欧洲精品码一区二区三区免费看 | 久久九九网站 | 久久久久久久久久久免费av | 在线观看视频免费播放 | 有码中文字幕 | 免费亚洲黄色 | 久久视频6| 国产va在线 | www久久精品 | 狠狠的干狠狠的操 | 91久久电影 | 亚洲爱av| 精品国产一区二区三区在线 | 狠狠狠色丁香婷婷综合久久88 | 最近中文字幕在线播放 | 日韩欧美国产激情在线播放 | 久久成人毛片 | 91视视频在线直接观看在线看网页在线看 | 国产一线在线 | 99高清视频有精品视频 | 97超碰精品 | 国产精品 美女 | 西西4444www大胆无视频 | 怡红院久久 | 久久夜色精品国产欧美乱 | 成人免费视频免费观看 | 丁香婷婷色 | 国产一级一片免费播放放 | 天天操夜夜操国产精品 | 麻豆视频网址 | 日本韩国欧美在线观看 | 欧美人体xx | 欧美午夜理伦三级在线观看 | 91丨精品丨蝌蚪丨白丝jk | 久久国精品 | 麻豆成人精品 | 国产黄色成人av | 97网| av日韩精品 | 国产91免费在线观看 | 日韩午夜剧场 | 亚洲久草在线视频 | 91.麻豆视频 | 亚洲精选久久 | 三级av网| 欧美另类高清 | 亚洲精品久久久久中文字幕m男 | 91福利社在线观看 | 国产精品精品 | 日韩av电影免费观看 | 欧美a级免费视频 | 久久新视频 | 日韩手机视频 | 97在线观看免费观看 | 久久久久欠精品国产毛片国产毛生 | 久久久免费精品 | 色婷婷亚洲精品 | 国产黄影院色大全免费 | www.伊人色.com | 久草在线视频看看 | 成人国产精品av | 91精品色| 在线免费观看黄网站 | 免费能看的黄色片 | 在线观看视频你懂得 | 很黄很黄的网站免费的 | 欧美性色网站 | 国产精品入口麻豆www | 国产一区二区网址 | 高清视频一区 | 99久久精品免费看国产免费软件 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 亚洲天堂网在线播放 | 亚洲精品美女在线观看 | 精品久久久久_ | 在线观看免费一级片 | 日韩av成人 | www.色午夜,com| 亚洲欧美日韩精品久久奇米一区 | 91chinesexxx| 人人爽爽人人 | 欧美做受高潮 | 人人爽爽人人 | 中文字幕欧美日韩va免费视频 | 成人毛片一区 | 最近能播放的中文字幕 | 97香蕉久久超级碰碰高清版 | 中文字幕乱码电影 | 久久久精品国产免费观看同学 | 日日夜夜免费精品视频 | 国产综合小视频 | 911香蕉| 天天干天天射天天爽 | 欧美日韩国产一二 | 国产主播大尺度精品福利免费 | 中文字幕在线不卡国产视频 | 久久综合狠狠综合久久综合88 | 日日操网站 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 久在线| 99精品免费在线观看 | 国产精品成人一区二区三区吃奶 | 六月激情婷婷 | 国产精品人人做人人爽人人添 | 亚洲人在线 | 夜夜操网站 | 日韩一三区 | 色综合天天色综合 | 西西www444| 国产免费久久 | 丁香五婷 | 色综合在 | 在线视频 日韩 | 午夜黄网| 欧美 日韩 国产 中文字幕 | 日韩欧美高清免费 | 亚洲激情视频 | 9999在线视频| 欧美性护士 | 亚洲精品免费在线观看 | 草久在线视频 | 91免费观看 | 免费观看的黄色 | 99亚洲国产精品 | 欧美片一区二区三区 | 伊人网综合在线观看 | 国产麻豆成人传媒免费观看 | 视频二区| 91精品久久久久久综合五月天 | 久久免费久久 | 午夜三级福利 | 国产 日韩 中文字幕 | 四川bbb搡bbb爽爽视频 | 午夜手机电影 | 国产在线视频不卡 | av丁香 | 日本在线视频一区二区三区 | 亚洲精品456在线播放 | 狠狠色噜噜狠狠狠 | 色偷偷av男人天堂 | 国产精品人成电影在线观看 | 久久综合中文字幕 | 国产盗摄精品一区二区 | 国产视频一 | 国产一级视频在线 | 丁香婷婷深情五月亚洲 | 伊人伊成久久人综合网站 | 久久这里只有精品首页 | 亚洲精品乱码久久久久久写真 | 久草久热| 五月开心综合 | 九九九热视频 | 欧美婷婷综合 | 婷婷六月天天 | 久章草在线观看 | 国产高清不卡 | www夜夜操| 黄色av电影| 97在线观看免费视频 | 国产一级在线免费观看 | 亚洲三级性片 | 亚洲高清国产视频 | 国产精品久久久久久久久久免费看 | 天堂在线一区二区 | 亚洲视频中文 | 欧美日韩在线精品 | 99久久99久久精品国产片果冰 | 免费中文字幕 | 91九色蝌蚪视频网站 | 日韩成人免费电影 | 99视频免费在线观看 | 久久久久免费 | 97视频资源 | 久久免费的精品国产v∧ | 成人午夜电影网站 | 午夜精品一区二区三区免费视频 | 毛片一级免费一级 | 国产黄色片免费 | 亚洲综合色播 | 青草视频网 | 一区二区在线不卡 | 日韩高清在线看 | 手机成人免费视频 | 男女视频久久久 | 在线播放视频一区 | 国内外成人在线 | 久久国产一区二区三区 | 黄色小说免费观看 | 婷婷在线色 | 成人av免费看 | 人人爽久久久噜噜噜电影 | 日韩国产精品一区 | 超碰九九 | 欧美色黄| 亚洲成av人片一区二区梦乃 | 一级黄视频 | 亚洲国产精彩中文乱码av | 在线观看亚洲国产 | 国产 一区二区三区 在线 | 欧美另类巨大 | 国产亚洲精品久久久久动 | 91伊人影院 | 香蕉视频在线网站 | 香蕉影院在线 | 99色婷婷| 欧美日韩精品在线一区二区 | 在线成人一区 | 色综合天天天天做夜夜夜夜做 | 99精品视频在线免费观看 | 久久久精品欧美一区二区免费 | 欧美在线观看禁18 | 国产日韩欧美自拍 | 国产精品国产三级国产 | 国产精品系列在线播放 | 一区 二区 精品 | 18av在线视频| 国产一级高清视频 | 亚洲精品乱码久久久久 | 欧美久久久一区二区三区 | 91亚洲国产成人久久精品网站 | 久草在线视频看看 | 欧美另类人妖 | 免费看一及片 | 综合色狠狠| 香蕉日日 | 国产高清视频在线免费观看 | 毛片黄色一级 | 九九在线国产视频 | 国产福利在线 | 在线观看成人国产 | 91视频免费看 |