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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

iOS线程知识整理

發布時間:2024/4/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS线程知识整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是線程

1、線程的定義、狀態、屬性

進程

進程:(Process)是計算機中的程序關于某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎。在早期面向進程設計的計算機結構中,進程是程序的基本執行實體;在當代面向線程設計的計算機結構中,進程是線程的容器。程序是指令、數據及其組織形式的描述,進程是程序的實體。每個進程都有獨立的代碼和數據空間(進程上下文),進程間的切換會有較大的開銷,一個進程包含1--n個線程。(進程是資源分配的最小單位)

線程

線程:有時被稱為輕量級進程(Lightweight Process,LWP),是程序執行流的最小單元。一個標準的線程由線程ID,當前指令指針(PC),寄存器集合和堆棧組成。另外,線程是進程中的一個實體,是被系統獨立調度和分派的基本單位,線程自己不擁有系統資源,只擁有一點兒在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程可以創建和撤消另一個線程,同一進程中的多個線程之間可以并發執行。由于線程之間的相互制約,致使線程在運行中呈現出間斷性。線程也有就緒、阻塞和運行三種基本狀態。就緒狀態是指線程具備運行的所有條件,邏輯上可以運行,在等待處理機; 運行狀態是指線程占有處理機正在運行; 阻塞狀態是指線程在等待一個事件(如某個信號量),邏輯上不可執行。每一個程序都至少有一個線程,若程序只有一個線程,那就是程序本身。多線程:線程是程序中一個單一的順序控制流程。進程內一個相對獨立的、可調度的執行單元,是系統獨立調度和分派CPU的基本單位指運行中的程序的調度單位。在單個程序中同時運行多個線程完成不同的工作,稱為多線程。同一類線程共享代碼和數據空間,每個線程有獨立的運行棧和程序計數器(PC),線程切換開銷小。(線程是cpu調度的最小單位)多進程是指操作系統能同時運行多個任務(程序)。多線程是指在同一程序中有多個順序流在執行。

線程與進程的共同點和區別

共同點:線程和進程一樣分為五個階段:創建、就緒、運行、阻塞、終止。區別:線程和進程的區別在于,子進程和父進程有不同的代碼和數據空間,而多個線程則共享數據空間,每個線程有自己的執行堆棧和程序計數器為其執行上下文。多線程主要是為了節約CPU時間,發揮利用,根據具體情況而定。線程的運行中需要使用計算機的內存資源和CPU。線程與進程的區別可以歸納為以下幾點:1)地址空間和其它資源(如打開文件):進程間相互獨立,同一進程的各線程間共享。某進程內的線程在其它進程不可見。2)通信:進程間通信IPC,線程間可以直接讀寫進程數據段(如全局變量)來進行通信——需要進程同步和互斥手段的輔助,以保證數據的一致性。3)調度和切換:線程上下文切換比進程上下文切換要快得多。4)在多線程OS中,進程不是一個可執行的實體。

線程的狀態

就緒:線程分配了CPU以外的全部資源,等待獲得CPU調度執行:線程獲得CPU,正在執行阻塞:線程由于發生I/O或者其他的操作導致無法繼續執行,就放棄處理機,轉入線程就緒

線程的特性

線程在多線程OS中,通常是在一個進程中包括多個線程,每個線程都是作為利用CPU的基本單位,是花費最小開銷的實體。線程具有以下屬性。①輕型實體線程中的實體基本上不擁有系統資源,只是有一點必不可少的、能保證獨立運行的資源,比如,在每個線程中都應具有一個用于控制線程運行的線程控制塊TCB,用于指示被執行指令序列的程序計數器、保留局部變量、少數狀態參數和返回地址等的一組寄存器和堆棧。②獨立調度和分派的基本單位。在多線程OS中,線程是能獨立運行的基本單位,因而也是獨立調度和分派的基本單位。由于線程很“輕”,故線程的切換非常迅速且開銷小。③可并發執行。在一個進程中的多個線程之間,可以并發執行,甚至允許在一個進程中所有線程都能并發執行;同樣,不同進程中的線程也能并發執行。④共享進程資源。在同一進程中的各個線程,都可以共享該進程所擁有的資源,這首先表現在:所有線程都具有相同的地址空間(進程的地址空間),這意味著,線程可以訪問該地址空間的每一個虛地址;此外,還可以訪問進程所擁有的已打開文件、定時器、信號量機構等。

2、線程之間的通信

什么是線程通信

多個線程在處理同一個資源,并且任務不同時,需要線程通信來幫助解決線程之間對同一個變量的使用或操作。就是多個線程在操作同一份數據時, 避免對同一共享變量的爭奪。就是在一個線程進行了規定操作后,就進入等待狀態(wait), 等待其他線程執行完他們的指定代碼過后 再將其喚醒(notify);當我們創建多個生產者和消費者時,無法直到到底要喚醒哪一個,所以這時候我們就用到了notifAll()方法。

為什么要線程通信

多個線程并發執行時, 在默認情況下CPU是隨機切換線程的,當我們需要多個線程來共同完成一件任務,并且我們希望他們有規律的執行, 那么多線程之間需要一些協調通信,以此來幫我們達到多線程共同操作一份數據。當然如果我們沒有使用線程通信來使用多線程共同操作同一份數據的話,雖然可以實現,但是在很大程度會造成多線程之間對同一共享變量的爭奪,那樣的話勢必為造成很多錯誤和損失!所以,我們才引出了線程之間的通信,多線程之間的通信能夠避免對同一共享變量的爭奪。

3、線程進程以及堆棧關系的總結

棧是線程獨有的,保存其運行狀態和局部自動變量的,棧在線程開始的時候初始化,每個線程的棧相互對立,因此,棧是線程安全的,??臻g有系統管理。棧被自動分配到進程的內存空間中。

堆在操作系統度進程初始化的時候分配,運行過程中也可以向系統要額外的堆,但是用完要返還,不然就是內存泄露。

iOS中的線程

iOS中提供了四套多線程方案、一種一種來看。

Pthreads (不做介紹) NSThread GCD NSOperation & NSOperationQueue

1、NSThread

蘋果封裝、面向對象的、可以直接操控線程對象,非常直觀和方便。但是,它的生命周期還是需要我們手動管理。

優缺點

優點:輕量級缺點:一個NSThread對象代表一個線程,需要手動管理線程的生命周期,處理線程同步等問題,線程同步對數據的加鎖會有一定的開銷。

創建并啟動

1、先創建線程類,再啟動

//1 創建NSThread 并啟動 NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(run) object:nil];[thread start];

2、創建并自動啟動

[NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:nil];// __weak typeof(self) weakself = self; [NSThread detachNewThreadWithBlock:^{[weakself run]; }];

3、使用 NSObject 的方法創建并自動啟動

[self performSelectorInBackground:@selector(run) withObject:nil];

但是在Swift中沒有這個方法:

Note: The performSelector: method and related selector-invoking methods are not imported in Swift because they are inherently unsafe. //共同執行的方法\兩種鎖 - (void)run { // [lock lock]; // NSLog(@"111111"); // NSLog(@"---%@",NSThread.currentThread); // [lock unlock];@synchronized (self) {NSLog(@"111111%@",NSThread.currentThread);NSLog(@"---%@",NSThread.currentThread);} }執行結果: 2017-11-09 10:55:34.196040+0800 MultithreadingDemo[96041:6103178] 111111<NSThread: 0x604000273200>{number = 5, name = (null)} 2017-11-09 10:55:34.196457+0800 MultithreadingDemo[96041:6103178] ---<NSThread: 0x604000273200>{number = 5, name = (null)} 2017-11-09 10:55:34.197956+0800 MultithreadingDemo[96041:6103177] 111111<NSThread: 0x604000273100>{number = 3, name = (null)} 2017-11-09 10:55:34.198510+0800 MultithreadingDemo[96041:6103177] ---<NSThread: 0x604000273100>{number = 3, name = (null)} 2017-11-09 10:55:34.200726+0800 MultithreadingDemo[96041:6103179] 111111<NSThread: 0x604000273140>{number = 4, name = (null)} 2017-11-09 10:55:34.201170+0800 MultithreadingDemo[96041:6103179] ---<NSThread: 0x604000273140>{number = 4, name = (null)}

其他方法

除了創建啟動外,NSThread 還以很多方法,下面是一些常見的方法

//取消線程 - (void)cancel;//啟動線程 - (void)start;//判斷某個線程的狀態的屬性 @property (readonly, getter=isExecuting) BOOL executing; @property (readonly, getter=isFinished) BOOL finished; @property (readonly, getter=isCancelled) BOOL cancelled;//獲取當前線程信息 + (NSThread *)currentThread;//獲取主線程信息 + (NSThread *)mainThread;//使當前線程暫停一段時間,或者暫停到某個時刻 + (void)sleepForTimeInterval:(NSTimeInterval)time; + (void)sleepUntilDate:(NSDate *)date;

2、GCD

Grand Central Dispatch,是libdispatch的市場名稱,而libdispatch是Apple的一個庫,其為并發代碼在iOS和OS X的多核硬件上執行提供支持。確切地說GCD是一套低層級的C API,通過 GCD,開發者只需要向隊列中添加一段代碼塊(block或C函數指針),而不需要直接和線程打交道。GCD在后端管理著一個線程池,它不僅決定著你的代碼塊將在哪個線程被執行,還根據可用的系統資源對這些線程進行管理。這樣通過GCD來管理線程,從而解決線程生命周期(創建線程、調度任務、銷毀線程)問題。同時自動合理地利用更多的CPU內核(比如雙核、四核)。

GCD 優點

易用: GCD 提供一個易于使用的并發模型而不僅僅只是鎖和線程,以幫助我們避開并發陷阱,而且因為基于block,它能極為簡單得在不同代碼作用域之間傳遞上下文。

靈活: GCD 具有在常見模式上(比如鎖、單例),用更高性能的方法優化代碼,而且GCD能提供更多的控制權力以及大量的底層函數。

性能: GCD 能自動根據系統負載來增減線程數量,這就減少了上下文切換以及增加了計算效率。

GCD 概念

1.Dispatch Object

GCD被組建成面向對象的風格。GCD對象被稱為 dispatch object, 所有的 dispatch object 都是OC對象.,就如其他OC對象一樣,當開啟了 ARC 時,dispatch object 的retain和release都會自動執行。而如果是MRC的話,dispatch objects會使用dispatch_retain和dispatch_release這兩個方法來控制引用計數。

在 iOS 6.0 dispatch_release 已被廢棄。內部被改成對象釋放(release)所以 arc 后都不再使用

2.Serial & Concurrent

串行任務就是每次只有一個任務被執行,并發任務就是在同一時間可以有多個任務被執行。

3.Synchronous & Asynchronous

Synchronous(同步函數)意思是在完成了它預定的任務后才返回,在任務執行時會阻塞當前線程。而 Asynchronous(異步函數)則是任務會完成但不會等它完成,所以異步函數不會阻塞當前線程,會繼續去執行下去。

4.Concurrency & Parallelism

Concurrency (并發)的意思就是同時運行多個任務。這些任務可能是以在單核 CPU 上以分時(時間共享)的形式同時運行,也可能是在多核 CPU 上以真正的并行方式來運行。然后為了使單核設備也能實現這一點,并發任務必須先運行一個線程,執行一個上下文切換,然后運行另一個線程或進程。Parallelism(并行)則是真正意思上的多任務同時運行。

5.Context Switch

Context Switch即上下文切換,一個上下文切換指當你在單個進程里切換執行不同的線程時存儲與恢復執行狀態的過程。這個過程在編寫多任務應用時很普遍,但會帶來一些額外的開銷。

6.Dispatch Queues

GCD dispatch queues 是一個強大的執行多任務的工具。Dispatch queue 是一個對象,它可以接受任務,并將任務以先進先出(FIFO)的順序來執行。Dispatch queue 可以并發的或串行的執行任意一個代碼塊,而且并發任務會像 NSOperationQueue 那樣基于系統負載來合適地并發進行,串行隊列同一時間則只執行單一任務。Dispatch queues 內部使用的是線程,GCD 管理這些線程,并且使用 Dispatch queues 的時候,我們都不需要自己創建線程。Dispatch queues相對于和線程直接通信的代碼優勢是:使用起來特別方便,執行任務更加有效率。

7.Queue Types

  • main queue : 主隊列 (主線程)
一般使用 main queue, 都是在該線程中操作 UI 相關的.也就是說, 在 main queue 中執行的任務會在主線程中執行.主線程只有一個, main queue 是與主線程相關的,所以 main queue 是串行隊列.//Returns the default queue that is bound to the main thread.dispatch_get_main_queue(void) {return DISPATCH_GLOBAL_OBJECT(dispatch_queue_t, _dispatch_main_q); }
  • global queue : 全局隊列 (有多個線程)
dispatch_get_global_queue(long identifier, unsigned long flags); dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 常寫作 dispatch_get_global_queue(0, 0);global queue 是并發隊列.可以設置其優先級. ???優先級問題 //@param identifier 優先級 - A quality of service class defined in qos_class_t or a priority defined in - dispatch_queue_priority_t.//@param flags 備用參數 - Reserved for future use. Passing any value other than zero may result in - a NULL return value. //@result 返回一個全局隊列 - Returns the requested global queue or NULL if the requested global queue - does not exist.
  • custom queue : 自定義隊列 (串行:單線程 ,并行:有多個線程)
這些隊列是可以是串行的, 也可以是并行的。默認是串行的. dispatch_queue_attr_t設置成NULL的時候默認代表串行。 串行隊列可以保證任務是串行的, 保證了執行順序.類似鎖機制.dispatch_queue_create(const char *_Nullable label,dispatch_queue_attr_t _Nullable attr);//@param label 隊列名稱 盡量別重名 - A string label to attach to the queue. - This parameter is optional and may be NULL. //@param attr 隊列類型 默認 DISPATCH_QUEUE_SERIAL - A predefined attribute such as DISPATCH_QUEUE_SERIAL, - DISPATCH_QUEUE_CONCURRENT, or the result of a call to - a dispatch_queue_attr_make_with_* function. //@result - The newly created dispatch queue.

GCD的具體使用

1.添加任務到隊列

GCD有兩種方式來把任務添加到隊列中:異步和同步。

異步方式添加任務到隊列的情況:

1.自定義串行隊列:按添加進隊列的先后順序 順序執行(不管同步異步線程)

我們接著上面的run方法來寫一個串行隊列第一步,寫兩個異步線程和一個同步線程加入隊列執行:其中第一個線程執行任務之前睡眠1秒 [self run]; __weak typeof(self) weakself = self; dispatch_queue_t queue = dispatch_queue_create("串行隊列", DISPATCH_QUEUE_SERIAL); dispatch_async(queue, ^{sleep(1);[weakself run]; }); dispatch_async(queue, ^{[weakself run]; });dispatch_sync(queue, ^{[weakself run]; });結果: 2017-11-09 14:00:22.642407+0800 MultithreadingDemo[97236:6195716] ---<NSThread: 0x604000069240>{number = 1, name = main} 2017-11-09 14:00:23.643340+0800 MultithreadingDemo[97236:6195829] ---<NSThread: 0x604000275300>{number = 3, name = (null)} 2017-11-09 14:00:23.643547+0800 MultithreadingDemo[97236:6195829] ---<NSThread: 0x604000275300>{number = 3, name = (null)} 2017-11-09 14:00:23.643776+0800 MultithreadingDemo[97236:6195716] ---<NSThread: 0x604000069240>{number = 1, name = main}包括主線程在內,整個隊列里面有兩條線程,但是執行結果卻被第一個sleep阻塞1秒。所以串行隊列是一個個任務完成后再執行后面的任務第二步,寫一個異步線程包裹一個同步線程,并在同步線程中執行run [self run]; __weak typeof(self) weakself = self; dispatch_queue_t queue = dispatch_queue_create("串行隊列", DISPATCH_QUEUE_SERIAL); dispatch_async(queue, ^{[weakself run]; }); dispatch_async(queue, ^{ //1號任務[weakself run];dispatch_sync(queue, ^{ //2號任務[weakself run];}); }); 結果: 2017-11-09 14:08:03.335534+0800 MultithreadingDemo[97291:6200400] ---<NSThread: 0x60000006f580>{number = 1, name = main} 2017-11-09 14:08:03.335846+0800 MultithreadingDemo[97291:6200500] ---<NSThread: 0x60000046a9c0>{number = 3, name = (null)} 2017-11-09 14:08:03.336308+0800 MultithreadingDemo[97291:6200500] ---<NSThread: 0x60000046a9c0>{number = 3, name = (null)}崩潰在 dispatch_sync 這一行,所以我們只看到了一條主線程run的記錄 分析一下: 1、我們使用了同步線程,而且是串行隊列, 2、1號任務沒有結束、2號任務是無法執行的 3、當任務走到同步線程開啟的時候,線程會被阻塞,直到2號任務block內的任務執行完成才會釋放 4、可是同步線程把任務加入queue隊列之后才發現,自己要執行的這個任務前面還卡著一個1號任務 5、線程被阻塞,1號任務無法完成,1號任務沒完成 2號任務就不能執行 6、造成死鎖所以改一下,只要把同步任務換個隊列執行,就可以避免死鎖了: dispatch_async(queue, ^{[weakself run];dispatch_sync(dispatch_get_main_queue(), ^{[weakself run];}); });

2.主隊列:順序執行、串行隊列 一般更新UI都在主線程。

//主隊列中的任務一定會回到主線程去執行、如下方式去執行,同步任務在主線程、主隊列執行,主隊列是串行隊列,又會出現死鎖 dispatch_sync(dispatch_get_main_queue(), ^{[weakself run]; }); 改成: dispatch_async(dispatch_get_main_queue(), ^{[weakself run]; });

3.并發隊列:非順序執行,隨機、同步執行并發隊列一樣會卡住主線程

如串行隊列所寫,在并行隊列寫相同代碼執行結果會如何: [self run]; __weak typeof(self) weakself = self; dispatch_queue_t queue = dispatch_queue_create("并行隊列", DISPATCH_QUEUE_CONCURRENT); dispatch_async(queue, ^{[weakself run]; }); dispatch_async(queue, ^{[weakself run];dispatch_sync(queue, ^{[weakself run];}); });結果: 2017-11-09 14:34:15.075513+0800 MultithreadingDemo[97572:6219452] ---<NSThread: 0x60000007dbc0>{number = 1, name = main} 2017-11-09 14:34:15.075965+0800 MultithreadingDemo[97572:6219573] ---<NSThread: 0x60000046bdc0>{number = 4, name = (null)} 2017-11-09 14:34:15.075967+0800 MultithreadingDemo[97572:6219574] ---<NSThread: 0x60000046ae00>{number = 3, name = (null)} 2017-11-09 14:34:15.076703+0800 MultithreadingDemo[97572:6219573] ---<NSThread: 0x60000046bdc0>{number = 4, name = (null)}可以看到執行結果是正常的,并未出現死鎖,那是因為并行隊列是可以多個任務并行執行的,正因為允許多個任務同時執行,所以執行結束時間并不是按著添加入隊列的順序來的。

4.全球隊列:并行隊列、異步線程常用隊列

dispatch_get_global_queue(0, 0);

2.并發執行迭代循環

在開發中,并發隊列能很好地提高效率,特別是當我們需要執行一個數據龐大的循環操作時。打個比方來說吧,我們需要執行一個for循環,每一次循環操作如下:

for (i = 0; i < count; i++) {NSLog("%d",i); }

GCD提供了一個簡化方法叫做dispatch_apply,當我們把這個方法放到并發隊列中執行時,這個函數會調用單一block多次,并平行運算,然后等待所有運算結束。

代碼示例:

但是dispatch_apply函數是沒有異步版本的。只能將整個dispatch_apply 置于異步中。dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);dispatch_apply(count, queue, ^(size_t i) {NSLog("%d",i); });直接在主線程調用dispatch_apply 會阻塞主線程,如果使用了并發隊列 隊列任務會被放置在異步線程中執行,但是主線程依然被阻塞。只有整個放入異步線程才不會阻塞主線程。

3.掛起和恢復隊列

有時候,我們不想讓隊列中的某些任務馬上執行,這時我們可以通過掛起操作來阻止一個隊列中將要執行的任務。當需要掛起隊列時,使用dispatch_suspend方法;恢復隊列時,使用dispatch_resume方法。調用dispatch_suspend會增加隊列掛起的引用計數,而調用dispatch_resume則會減少引用計數,當引用計數大于0時,隊列會保持掛起狀態。因此,這隊列的掛起和恢復中,我們需要小心使用以避免引用計數計算錯誤的出現。

執行掛起操作不會對已經開始執行的任務起作用,它僅僅只會阻止將要進行但是還未開始的任務。 dispatch_queue_t myQueue;myQueue = dispatch_queue_create("隊列", NULL); //掛起隊列 dispatch_suspend(myQueue); //恢復隊列 dispatch_resume(myQueue);如下:__weak typeof(self) weakself = self; dispatch_queue_t queue = dispatch_queue_create("并行隊列", DISPATCH_QUEUE_CONCURRENT); dispatch_async(queue, ^{[weakself run]; }); dispatch_async(queue, ^{dispatch_suspend(queue);[weakself run];dispatch_sync(queue, ^{[weakself run];}); });結果 只有兩條run語句,同步線程因為隊列被掛起,所以并未執行 2017-11-09 14:43:22.593056+0800 MultithreadingDemo[97644:6225319] ---<NSThread: 0x60000027e0c0>{number = 9, name = (null)} 2017-11-09 14:43:22.592831+0800 MultithreadingDemo[97644:6226170] ---<NSThread: 0x600000271a40>{number = 8, name = (null)}

4.dispatch_after 的使用

延遲一段時間把一項任務提交到隊列中執行,返回之后就不能取消

dispatch_after(dispatch_time_t when, dispatch_queue_t queue, dispatch_block_t block);一般我們在做一些延時任務的時候使用的多

5.dispatch_once 的使用

保證在APP運行期間,block中的代碼只執行一次

static Demo *demo; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{demo = [Demo new]; });單例常用

6.Dispatch Groups 的使用

Dispatch groups是阻塞線程直到一個或多個任務完成的一種方式。在那些需要等待任務完成才能執行某個處理的時候,你可以使用這個方法。Group會在整個組的任務都完成時通知你,這些任務可以是同步的,也可以是異步的,即便在不同的隊列也行。而且在整個組的任務都完成時, Group可以用同步的或者異步的方式通知你。當group中所有的任務都完成時,GCD 提供了兩種通知方式。

dispatch_group_wait。它會阻塞當前線程,直到隊列里面所有的任務都完成或者等到某個超時發生。

代碼示例:

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_group_t group = dispatch_group_create(); // 添加隊列到組中 dispatch_group_async(group, queue, ^{ // 一些異步操作 或者耗時操作 });//如果在所有任務完成前超時了,該函數會返回一個非零值。 //你可以對此返回值做條件判斷以確定是否超出等待周期; dispatch_group_wait(group, DISPATCH_TIME_FOREVER);NSLog(@"123"); //被阻塞,因為dispatch_group_wait 所以這一句代碼只會在隊列任務都完成后執行

dispatch_group_notify。它以異步的方式工作,當 Dispatch Group中沒有任何任務時,它就會執行其代碼,那么 completionBlock便會運行??梢杂糜谠诓⑿嘘犃兄写腥蝿斩纪瓿芍笤僬{起執行。

代碼示例:

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_group_t group = dispatch_group_create();// 添加隊列到組中 dispatch_group_async(group, queue, ^{NSLog(@"one---%@",NSThread.currentThread); }); dispatch_group_async(group, queue, ^{// 一些延時操作sleep(2);NSLog(@"two---%@",NSThread.currentThread); }); dispatch_group_async(group, queue, ^{// 一些延時操作sleep(3);NSLog(@"three---%@",NSThread.currentThread); }); dispatch_group_async(group, queue, ^{NSLog(@"four---%@",NSThread.currentThread); });dispatch_group_notify(group, queue, ^{NSLog(@"我會一直等到現在"); }); NSLog(@"123");結果 2017-11-09 15:21:48.480021+0800 MultithreadingDemo[98195:6255855] 123 2017-11-09 15:21:48.480192+0800 MultithreadingDemo[98195:6255916] one---<NSThread: 0x600000466800>{number = 3, name = (null)} 2017-11-09 15:21:48.480321+0800 MultithreadingDemo[98195:6255917] four---<NSThread: 0x600000466840>{number = 4, name = (null)} 2017-11-09 15:21:50.483266+0800 MultithreadingDemo[98195:6255918] two---<NSThread: 0x604000462e80>{number = 5, name = (null)} 2017-11-09 15:21:51.483851+0800 MultithreadingDemo[98195:6255922] three---<NSThread: 0x60400027dd40>{number = 6, name = (null)} 2017-11-09 15:21:51.484084+0800 MultithreadingDemo[98195:6255922] 我會一直等到現在對這一段代碼,并行隊列執行,最后一行不會阻塞,其余加入group中的任務執行完成后才會執行notify中的任務。 常用于需要等待某些異步線程執行完成后統一處理的場景,比如多個接口數據拼裝模型

7.dispatch_barrier_async 、dispatch_barrier_sync 的使用

在并行隊列中,為了保持某些任務的順序,需要等待一些任務完成后才能繼續進行,使用 barrier 柵欄函數 來等待之前任務完成,避免數據競爭等問題。

同步,會攔截后面所有的代碼執行,直到前面任務完成,并且完成柵欄函數中的任務。

異步,攔截并行隊列中的后續任務,直到前面任務執行完,并且完成柵欄函數中的任務。不會影響主線程。

dispatch_barrier_async 函數會等待追加到并行隊列中的操作全部執行完之后,然后再執行 dispatch_barrier_async 函數追加的處理,等 dispatch_barrier_async 追加的處理執行結束之后(同時只執行一個任務),Concurrent Dispatch Queue才恢復之前的動作繼續執行。

注意:使用 dispatch_barrier_async,該函數只能搭配自定義并行隊列 dispatch_queue_t 使用。不能使用: dispatch_get_global_queue ,否則 dispatch_barrier_async 的作用會和 dispatch_async 的作用一模一樣。

__weak typeof(self) weakself = self; dispatch_queue_t queue = dispatch_queue_create("并行隊列", DISPATCH_QUEUE_CONCURRENT); dispatch_async(queue, ^{[weakself run]; }); dispatch_async(queue, ^{[weakself run]; });//加入 dispatch_barrier_async(queue, ^{sleep(1);[weakself run2];sleep(1); }); dispatch_barrier_async(queue, ^{[weakself run2];sleep(1); }); dispatch_async(queue, ^{[weakself run]; }); dispatch_async(queue, ^{[weakself run]; });結果 2017-11-09 16:50:54.226018+0800 MultithreadingDemo[99305:6326134] ---<NSThread: 0x6000002617c0>{number = 4, name = (null)} 2017-11-09 16:50:54.225967+0800 MultithreadingDemo[99305:6326323] ---<NSThread: 0x600000268700>{number = 3, name = (null)} 2017-11-09 16:50:55.227973+0800 MultithreadingDemo[99305:6326323] ++++<NSThread: 0x600000268700>{number = 3, name = (null)} 2017-11-09 16:50:56.228820+0800 MultithreadingDemo[99305:6326323] ++++<NSThread: 0x600000268700>{number = 3, name = (null)} 2017-11-09 16:50:57.230081+0800 MultithreadingDemo[99305:6326323] ---<NSThread: 0x600000268700>{number = 3, name = (null)} 2017-11-09 16:50:57.230082+0800 MultithreadingDemo[99305:6326134] ---<NSThread: 0x6000002617c0>{number = 4, name = (null)}55\56秒 明顯的三次停頓。說明執行 dispatch_barrier_async 插入的任務時 同時只執行了一個任務

3、NSOperation

NSOperation 是蘋果公司對 GCD 的封裝,完全面向對象,所以使用起來更好理解。 大家可以看到 NSOperation和 NSOperationQueue 分別對應 GCD 的 任務 和 隊列 。

優缺點

與NSThread的區別:沒有那么輕量級,但是不需要關心線程管理,數據同步的事情。與GCD區別:NSOperationQueue可以方便的管理并發、NSOperation之間的優先級。GCD主要與block結合使用。代碼簡潔高效。如果異步操作的過程需要更多的被交互和UI呈現出來,NSOperationQueue會是一個更好的選擇。底層代碼中,任務之間不太互相依賴,而需要更高的并發能力,GCD則更有優勢

我們要做的就是:

1.將要執行的任務封裝到一個NSOperation對象中

2.將此任務添加到一個NSOperationQueue對象中

創建添加

NSOperation有兩個子類:NSBlockOperation 和 NSInvocationOperation (或者自行自定義Operation )

NSBlockOperation:(OC 代碼、Swift也有)

+ (instancetype)blockOperationWithBlock:(void (^)(void))block; - (void)addExecutionBlock:(void (^)(void))block;__weak typeof(self) weakself = self; NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{[weakself run]; }]; [operation start];結果 2017-11-09 15:53:29.765058+0800 MultithreadingDemo[98518:6280532] ---<NSThread: 0x604000073e80>{number = 1, name = main}1、直接執行創建的operation 默認是當前線程 2、NSBlockOperation 還有一個添加執行block的方法,它會在當前線程和其他多個線程執行這些block中的任務 [operation addExecutionBlock:^{[weakself run]; }];結果 2017-11-09 15:53:29.765058+0800 MultithreadingDemo[98518:6280532] ---<NSThread: 0x604000073e80>{number = 1, name = main} 2017-11-09 15:53:29.765055+0800 MultithreadingDemo[98518:6280642] ---<NSThread: 0x60400026ea40>{number = 3, name = (null)}注意:當NSOperation開始執行后不能再添加任務

NSInvocationOperation: (Swift 不允許使用)

- (nullable instancetype)initWithTarget:(id)target selector:(SEL)sel object:(nullable id)arg; - (instancetype)initWithInvocation:(NSInvocation *)inv NS_DESIGNATED_INITIALIZER;//1.創建NSInvocationOperation對象 NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(run) object:nil];//2.開始執行 [operation start];

隊列

上面例子中的任務執行,不管是多線程還是單線程都必然會在當前線程執行一個任務

NSOperation的隊列和GCD不同,不存在串行、并行之分,他們只有主隊列和其他隊列:

主隊列:

NSOperationQueue *queue = [NSOperationQueue mainQueue];

其他隊列:(注意:其他隊列的任務會在其他線程并行執行)

所有的非主隊列就是其他隊列,也就是說不是通過 mainQueue 獲取的隊列都是其他隊列NSOperationQueue *queue = [[NSOperationQueue alloc]init]; __weak typeof(self) weakself = self; NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{[weakself run]; }]; [operation addExecutionBlock:^{[weakself run]; }]; // [operation start]; 只要加入隊列,任務就會自動start [queue addOperation:operation];或者[queue addOperationWithBlock:^{[weakself run]; }];

其實更多來看 NSOperation相當于一個任務組,里面可以裝多個任務,然后任務組被加入隊列去執行

那么問題來了:沒有串行隊列么?按前面說的,所有任務會在其他線程同步執行,那我希望一個個執行怎么辦?

NSOperationQueue 有一個參數:maxConcurrentOperationCount這個參數表示允許并發執行的任務數限制,當為1的時候其實也就是串行執行了NSOperationQueue *queue = [[NSOperationQueue alloc]init]; __weak typeof(self) weakself = self; NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{[weakself run]; }]; [operation addExecutionBlock:^{sleep(1);[weakself run]; }]; queue.maxConcurrentOperationCount = 1; [queue addOperation:operation]; [queue addOperationWithBlock:^{[weakself run]; }];結果2017-11-09 16:18:23.524428+0800 MultithreadingDemo[98831:6301089] ---<NSThread: 0x600000473840>{number = 3, name = (null)} 2017-11-09 16:18:24.524800+0800 MultithreadingDemo[98831:6301087] ---<NSThread: 0x60000046d640>{number = 4, name = (null)} 2017-11-09 16:18:24.525121+0800 MultithreadingDemo[98831:6301087] ---<NSThread: 0x60000046d640>{number = 4, name = (null)}

其他功能

依賴:NSOperation還有一個非常實用的功能,也就是添加依賴

NSBlockOperation *operationA = [NSBlockOperation blockOperationWithBlock:^{sleep(1);NSLog(@"拉取A接口--%@",NSThread.currentThread); }];NSBlockOperation *operationB = [NSBlockOperation blockOperationWithBlock:^{sleep(1);NSLog(@"通過A接口參數拉取B接口--%@",NSThread.currentThread); }];NSBlockOperation *operationC = [NSBlockOperation blockOperationWithBlock:^{sleep(1);NSLog(@"通過B接口參數拉取C接口--%@",NSThread.currentThread); }]; [operationB addDependency:operationA]; [operationC addDependency:operationB];NSOperationQueue *queue = [[NSOperationQueue alloc] init]; [queue addOperations:@[operationA, operationB, operationC] waitUntilFinished:NO];隊列允許多個任務同時執行,但因為三個任務之間的依賴,我們看一下結果:2017-11-09 16:25:56.598192+0800 MultithreadingDemo[98972:6307395] 拉取A接口--<NSThread: 0x6040002748c0>{number = 3, name = (null)} 2017-11-09 16:25:57.599920+0800 MultithreadingDemo[98972:6307396] 通過A接口參數拉取B接口--<NSThread: 0x60000046d680>{number = 4, name = (null)} 2017-11-09 16:25:58.600665+0800 MultithreadingDemo[98972:6307395] 通過B接口參數拉取C接口--<NSThread: 0x6040002748c0>{number = 3, name = (null)}注意: 使用依賴的時候,我們要注意一點,依賴不能產生循環依賴,不然會死鎖 可以使用 removeDependency 來解除依賴關系。 不同的隊列之間的任務也可以依賴

4、鎖

NSLock

NSLock 遵循 NSLocking 協議,lock 方法是加鎖unlock 是解鎖tryLock 是嘗試加鎖,如果失敗的話返回 NOlockBeforeDate: 是在指定Date之前嘗試加鎖,如果在指定時間之前都不能加鎖,則返回NO。

NSConditionLock 條件鎖

@property (readonly) NSInteger condition; - (void)lockWhenCondition:(NSInteger)condition; - (BOOL)tryLock; - (BOOL)tryLockWhenCondition:(NSInteger)condition; - (void)unlockWithCondition:(NSInteger)condition; - (BOOL)lockBeforeDate:(NSDate *)limit; - (BOOL)lockWhenCondition:(NSInteger)condition beforeDate:(NSDate *)limit;NSConditionLock 和 NSLock 類似,都遵循 NSLocking 協議,方法都類似,只是多了一個 condition 屬性,以及每個操作都多了一個關于 condition 屬性的方法NSConditionLock 可以稱為條件鎖:tryLockWhenCondition:(NSInteger)condition; 只有 condition 參數與初始化時候的 condition 相等,lock 才能正確進行加鎖操作。unlockWithCondition:(NSInteger)condition; 解鎖后 condition 的值更新為新的值

NSRecursiveLock 遞歸鎖

NSRecursiveLock 是遞歸鎖,他和 NSLock 的區別在于,NSRecursiveLock 可以在一個線程中重復加鎖(反正單線程內任務是按順序執行的,不會出現資源競爭問題),NSRecursiveLock 會記錄上鎖和解鎖的次數,當二者平衡的時候,才會釋放鎖,其它線程才可以上鎖成功。如下遞歸操作,block中每次有加鎖操作,再未解鎖的時候再次進入遞歸,再次加鎖,造成死鎖。NSRecursiveLock就是用來解決這個問題的。 NSLock *normal_lock = [NSLock new]; NSRecursiveLock *recu_lock = [NSRecursiveLock new]; //線程1 dispatch_async(dispatch_get_main_queue(), ^{static void (^Block)(int);Block = ^(int value) {[normal_lock lock];if (value > 0) {NSLog(@"value:%d", value);Block(value - 1);}[normal_lock unlock];};Block(5); });

NSCondition

- (void)wait; - (BOOL)waitUntilDate:(NSDate *)limit; - (void)signal; - (void)broadcast;NSCondition 的對象實際上作為一個鎖和一個線程檢查器,鎖上之后其它線程也能上鎖,而之后可以根據條件決定是否繼續運行線程,即線程是否要進入 waiting 狀態,經測試,NSCondition 并不會像上文的那些鎖一樣,先輪詢,而是直接進入 waiting 狀態,當其它線程中的該鎖執行 signal 或者 broadcast 方法時,線程被喚醒,繼續運行之后的方法。用法如下:NSCondition *lock = [[NSCondition alloc] init];NSMutableArray *array = [[NSMutableArray alloc] init];//線程1dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{[lock lock];while (!array.count) {[lock wait];}[array removeAllObjects];NSLog(@"array removeAllObjects");[lock unlock];});//線程2dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{sleep(1);//以保證讓線程2的代碼后執行[lock lock];[array addObject:@1];NSLog(@"array addObject:@1");[lock signal];[lock unlock];}); 也就是使用 NSCondition 的模型為:鎖定條件對象。測試是否可以安全的履行接下來的任務。如果布爾值是假的,調用條件對象的 wait 或 waitUntilDate: 方法來阻塞線程。 在從這些方法返回,則轉到步驟 2 重新測試你的布爾值。 (繼續等待信號和重新測試,直到可以安全的履行接下來的任務。waitUntilDate: 方法有個等待時間限制,指定的時間到了,則放回 NO,繼續運行接下來的任務)如果布爾值為真,執行接下來的任務。當任務完成后,解鎖條件對象。而步驟 3 說的等待的信號,既線程 2 執行 [lock signal] 發送的信號。其中 signal 和 broadcast 方法的區別在于,signal 只是一個信號量,只能喚醒一個等待的線程,想喚醒多個就得多次調用,而 broadcast 可以喚醒所有在等待的線程。如果沒有等待的線程,這兩個方法都沒有作用。

@synchronized代碼塊

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{@synchronized(self) {sleep(2);NSLog(@"線程1");}NSLog(@"線程1解鎖成功"); });dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{sleep(1);@synchronized(self) {NSLog(@"線程2");} });@synchronized(object) 指令使用的 object 為該鎖的唯一標識,只有當標識相同時,才滿足互斥,所以如果線程 2 中的 @synchronized(self) 改為@synchronized(self.view),則線程2就不會被阻塞。@synchronized 指令實現鎖的優點就是我們不需要在代碼中顯式的創建鎖對象,便可以實現鎖的機制,但作為一種預防措施,@synchronized 塊會隱式的添加一個異常處理例程來保護代碼,該處理例程會在異常拋出的時候自動的釋放互斥鎖。 @synchronized 還有一個好處就是不用擔心忘記解鎖了。如果在 @sychronized(object){} 內部 object 被釋放或被設為 nil,從我做的測試的結果來看,的確沒有問題,但如果 object 一開始就是 nil,則失去了鎖的功能。不過雖然 nil 不行,但 @synchronized([NSNull null]) 是完全可以的。

條件信號量 dispatch_semaphore_t

dispatch_semaphore 是 GCD 用來同步的一種方式,與他相關的只有三個函數,一個是創建信號量,一個是等待信號,一個是發送信號。 有點和NSCondition類似,都是一種基于信號的同步方式。但 NSCondition 信號只能發送,不能保存(如果沒有線程在等待,則發送的信號會失效)而 dispatch_semaphore 能保存發送的信號。dispatch_semaphore 的核心是 dispatch_semaphore_t 類型的信號量。dispatch_semaphore_create(long value);dispatch_semaphore_wait(dispatch_semaphore_t dsema, dispatch_time_t timeout);dispatch_semaphore_signal(dispatch_semaphore_t dsema);dispatch_semaphore_t signal = dispatch_semaphore_create(1); dispatch_time_t overTime = dispatch_time(DISPATCH_TIME_NOW, 3 * NSEC_PER_SEC);dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{dispatch_semaphore_wait(signal, overTime);sleep(1);NSLog(@"線程1");dispatch_semaphore_signal(signal);NSLog(@"%@",signal); });dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{dispatch_semaphore_wait(signal, overTime);sleep(1);NSLog(@"線程2");dispatch_semaphore_signal(signal);NSLog(@"%@",signal); });dispatch_semaphore_wait(signal, overTime); 方法會判斷 signal 的信號值是否大于 0。大于 0 不會阻塞線程,消耗掉一個信號,執行后續任務。如果信號值為 0,該線程會和 NSCondition 一樣直接進入 waiting 狀態,等待其他線程發送信號喚醒線程去執行后續任務,或者當 overTime 時限到了,也會執行后續任務。dispatch_semaphore_signal(signal); 發送信號,如果沒有等待的線程接受信號,則使 signal 信號值加一(做到對信號的保存)。從上面的實例代碼可以看到,一個 dispatch_semaphore_wait(signal, overTime); 方法會去對應一個 dispatch_semaphore_signal(signal); 看起來像 NSLock 的 lock 和 unlock,其實可以這樣理解,區別只在于有信號量這個參數,lock unlock 只能同一時間,一個線程訪問被保護的臨界區,而如果 dispatch_semaphore 的信號量初始值為 x ,則可以有 x 個線程同時訪問被保護的臨界區。

OSSpinLock 自旋鎖

OSSpinLock 是一種自旋鎖,也只有加鎖,解鎖,嘗試加鎖三個方法。和 NSLock 不同的是 NSLock 請求加鎖失敗的話,會先輪詢,但一秒過后便會使線程進入 waiting 狀態,等待喚醒。而 OSSpinLock 會一直輪詢,等待時會消耗大量 CPU 資源,不適用于較長時間的任務。__block OSSpinLock theLock = OS_SPINLOCK_INIT;dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{OSSpinLockLock(&theLock);NSLog(@"線程1");sleep(10);OSSpinLockUnlock(&theLock);NSLog(@"線程1解鎖成功");});dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{sleep(1);OSSpinLockLock(&theLock);NSLog(@"線程2");OSSpinLockUnlock(&theLock);});ThreadLockControlDemo[2856:316247] 線程1 ThreadLockControlDemo[2856:316247] 線程1解鎖成功 ThreadLockControlDemo[2856:316260] 線程2拿上面的輸出結果和上文 NSLock 的輸出結果做對比,會發現 sleep(10) 的情況,OSSpinLock 中的“線程 2”并沒有和”線程 1解鎖成功“在一個時間輸出,而 NSLock 這里是同一時間輸出,而是有一點時間間隔,所以 OSSpinLock 一直在做著輪詢,而不是像 NSLock 一樣先輪詢,再 waiting 等喚醒。

5、常見問題

dispatch_release 已被廢棄(6.0)dispatch_release在6.0以后內部被改成對象釋放(release)所以 arc后都不再使用。

app啟動,系統默認創建5個線程

NSTimer

[self.timer setFireDate:[NSDate dateWithTimeIntervalSinceNow:5]];//暫停5s

6、捕獲開發中子線程更新UI的邏輯

1.為什么UI要在主線程更新

因為UIKit不是線程安全的。試想下面這幾種情況:

兩個線程同時設置同一個背景圖片,那么很有可能因為當前圖片被釋放了兩次而導致應用崩潰。

兩個線程同時設置同一個UIView的背景顏色,那么很有可能渲染顯示的是顏色A,而此時在UIView邏輯樹上的背景顏色屬性為B。

兩個線程同時操作view的樹形結構:在線程A中for循環遍歷并操作當前View的所有subView,然后此時線程B中將某個subView直接刪除,這就導致了錯亂還可能導致應用崩潰。

iOS4之后蘋果將大部分繪圖的方法和諸如 UIColor 和 UIFont 這樣的類改寫為了線程安全可用,但是仍然強烈建議講UI操作保證在主線程中執行。

2.我的想法

View的更新操作 使用runtime 去替換 View 中實現 的方法 不變更實現。只是在中間插入 線程檢查操作,發現子線程就必須打印線程調用棧并觸發crash。

問題:替換哪些方法更合適? 都會涉及到哪些基礎控件需要category?

3.例子

1.創建一個UIImage的category

@implementation UIImage (demo)+(void)load {Method m1 = class_getClassMethod([UIImage class],@selector(imageNamed:));Method m2 = class_getClassMethod([UIImage class],@selector(ximageNamed:));// 開始交換方法實現method_exchangeImplementations(m1, m2); } +(UIImage *)ximageNamed:(NSString *)name {NSLog(@"進入方法-開始檢查線程");NSThread *thread = [NSThread currentThread];if (![thread isMainThread]) {NSLog(@" 當前線程不是主線程 %@",[NSThread callStackSymbols]);}return [UIImage ximageNamed:name]; } @end

2.在一個視圖內實現一段UIImage的異步賦予圖片

UIImageView *img = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 300, 300)]; [self.view addSubview:img]; img.image = [UIImage imageNamed:@"networklosed"]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{img.image = [UIImage imageNamed:@"mncg_search_nor"]; }); NSLog(@"測試線程是否異步");

7、參考

GCD使用三部曲之:基本用法

總結

以上是生活随笔為你收集整理的iOS线程知识整理的全部內容,希望文章能夠幫你解決所遇到的問題。

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

四虎4hu永久免费 | 99久久精品国产一区二区蜜芽 | 熟妇人妻激情偷爽文 | 99久久人妻精品免费二区 | 国产无遮挡又黄又爽免费视频 | 国产精品手机免费 | a在线观看免费网站大全 | 中国大陆精品视频xxxx | 精品夜夜澡人妻无码av蜜桃 | 亚洲日韩av一区二区三区中文 | 国产无av码在线观看 | 国产精品无码一区二区桃花视频 | 四虎永久在线精品免费网址 | aⅴ亚洲 日韩 色 图网站 播放 | 精品国产aⅴ无码一区二区 | 伊人久久大香线蕉午夜 | 国产综合在线观看 | 粗大的内捧猛烈进出视频 | 成 人 免费观看网站 | 国产激情无码一区二区app | 人人妻人人澡人人爽欧美一区 | 天天躁日日躁狠狠躁免费麻豆 | 国产精品理论片在线观看 | 国产婷婷色一区二区三区在线 | 中文字幕日韩精品一区二区三区 | 激情人妻另类人妻伦 | 嫩b人妻精品一区二区三区 | 亚洲大尺度无码无码专区 | 波多野结衣av一区二区全免费观看 | 亚洲最大成人网站 | 久久精品国产大片免费观看 | 国产精品多人p群无码 | 色综合久久久无码网中文 | 久久国产36精品色熟妇 | 扒开双腿疯狂进出爽爽爽视频 | 强伦人妻一区二区三区视频18 | 国产综合色产在线精品 | 亚洲国产欧美日韩精品一区二区三区 | 国产内射爽爽大片视频社区在线 | 亚洲国产精品毛片av不卡在线 | 少妇性荡欲午夜性开放视频剧场 | 国产精品-区区久久久狼 | 特级做a爰片毛片免费69 | 人妻少妇精品久久 | 精品国产精品久久一区免费式 | 精品国产一区二区三区四区在线看 | 午夜福利试看120秒体验区 | 国产亚洲欧美日韩亚洲中文色 | 熟妇女人妻丰满少妇中文字幕 | 97久久国产亚洲精品超碰热 | 一本大道伊人av久久综合 | 日本一本二本三区免费 | 精品国偷自产在线 | 国产乱人偷精品人妻a片 | 曰韩少妇内射免费播放 | 131美女爱做视频 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 无码成人精品区在线观看 | 在线播放免费人成毛片乱码 | 国产精品久久精品三级 | 久久久久免费精品国产 | 亚洲精品www久久久 | www国产亚洲精品久久久日本 | 日韩成人一区二区三区在线观看 | 在线а√天堂中文官网 | 欧洲精品码一区二区三区免费看 | 日产精品高潮呻吟av久久 | 丰满人妻一区二区三区免费视频 | 中文字幕人成乱码熟女app | 人人妻人人澡人人爽精品欧美 | 亚洲欧美国产精品专区久久 | 日本www一道久久久免费榴莲 | 色综合天天综合狠狠爱 | 久久人人爽人人爽人人片ⅴ | 久久午夜无码鲁丝片秋霞 | 久久久久亚洲精品中文字幕 | 欧美freesex黑人又粗又大 | 亚洲精品鲁一鲁一区二区三区 | 强奷人妻日本中文字幕 | 强开小婷嫩苞又嫩又紧视频 | 国产成人精品一区二区在线小狼 | 一本大道久久东京热无码av | 日日摸夜夜摸狠狠摸婷婷 | аⅴ资源天堂资源库在线 | 无码国产激情在线观看 | 午夜免费福利小电影 | 人妻熟女一区 | 97色伦图片97综合影院 | 久久精品女人天堂av免费观看 | 国产亚洲人成a在线v网站 | 久久久久久a亚洲欧洲av冫 | 天天躁夜夜躁狠狠是什么心态 | 国产69精品久久久久app下载 | 综合人妻久久一区二区精品 | 国产精品久久久久无码av色戒 | 国产尤物精品视频 | 国产xxx69麻豆国语对白 | 香港三级日本三级妇三级 | 久青草影院在线观看国产 | 亚洲a无码综合a国产av中文 | 人妻中文无码久热丝袜 | 老头边吃奶边弄进去呻吟 | 秋霞成人午夜鲁丝一区二区三区 | 97夜夜澡人人双人人人喊 | 久久无码专区国产精品s | 在线看片无码永久免费视频 | 国产亚洲人成在线播放 | 两性色午夜免费视频 | 88国产精品欧美一区二区三区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 97色伦图片97综合影院 | 曰韩无码二三区中文字幕 | 狠狠cao日日穞夜夜穞av | 国产亚洲精品精品国产亚洲综合 | 精品欧美一区二区三区久久久 | 无码播放一区二区三区 | 日韩精品无码免费一区二区三区 | 红桃av一区二区三区在线无码av | 黄网在线观看免费网站 | 久久久精品456亚洲影院 | 人妻天天爽夜夜爽一区二区 | 亚洲精品久久久久久久久久久 | 午夜熟女插插xx免费视频 | 国产在线一区二区三区四区五区 | 中文字幕色婷婷在线视频 | 亚洲人成人无码网www国产 | 嫩b人妻精品一区二区三区 | 国内老熟妇对白xxxxhd | 人妻夜夜爽天天爽三区 | 四虎国产精品一区二区 | 波多野42部无码喷潮在线 | 亚洲日韩中文字幕在线播放 | 久久午夜无码鲁丝片午夜精品 | 亚洲熟妇色xxxxx亚洲 | 永久免费精品精品永久-夜色 | 午夜嘿嘿嘿影院 | 亚洲aⅴ无码成人网站国产app | 色 综合 欧美 亚洲 国产 | 日本熟妇人妻xxxxx人hd | 在线观看欧美一区二区三区 | 人人妻人人澡人人爽人人精品 | 又湿又紧又大又爽a视频国产 | 亚洲精品国偷拍自产在线麻豆 | 精品国产一区二区三区av 性色 | 又大又硬又爽免费视频 | 午夜嘿嘿嘿影院 | 天天摸天天碰天天添 | 人妻中文无码久热丝袜 | 最近免费中文字幕中文高清百度 | 亚洲爆乳大丰满无码专区 | 狠狠色丁香久久婷婷综合五月 | 国产成人无码av在线影院 | 久久久中文久久久无码 | 蜜臀aⅴ国产精品久久久国产老师 | 青春草在线视频免费观看 | 国产成人无码区免费内射一片色欲 | 正在播放老肥熟妇露脸 | www成人国产高清内射 | 波多野结衣av一区二区全免费观看 | 麻豆国产人妻欲求不满谁演的 | 又紧又大又爽精品一区二区 | 动漫av网站免费观看 | 精品国产一区二区三区av 性色 | 中国女人内谢69xxxxxa片 | 精品一区二区不卡无码av | 俺去俺来也在线www色官网 | 精品国精品国产自在久国产87 | 中文字幕无码av波多野吉衣 | 国产精品无码一区二区三区不卡 | 六十路熟妇乱子伦 | 国产精品久久久 | 亚洲日本va午夜在线电影 | 少妇高潮一区二区三区99 | 久久精品99久久香蕉国产色戒 | 香蕉久久久久久av成人 | 久久无码人妻影院 | 色狠狠av一区二区三区 | 性色av无码免费一区二区三区 | 国产午夜无码精品免费看 | 国产精品永久免费视频 | 精品久久综合1区2区3区激情 | 无码人妻精品一区二区三区不卡 | 国产精品.xx视频.xxtv | 免费无码一区二区三区蜜桃大 | 老熟女乱子伦 | 一本大道久久东京热无码av | 成人女人看片免费视频放人 | 国产成人午夜福利在线播放 | 一本久久a久久精品亚洲 | 亚洲成av人在线观看网址 | 国产一区二区三区精品视频 | 亚洲欧美日韩成人高清在线一区 | 午夜福利电影 | 国产深夜福利视频在线 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 黑人巨大精品欧美一区二区 | 亚洲日本在线电影 | 国产午夜视频在线观看 | 国产亚洲精品久久久闺蜜 | 国产精品无码一区二区桃花视频 | 久久精品成人欧美大片 | 欧美人与牲动交xxxx | 中文字幕日韩精品一区二区三区 | 国产精品.xx视频.xxtv | 任你躁在线精品免费 | 清纯唯美经典一区二区 | 在线播放免费人成毛片乱码 | 欧洲熟妇色 欧美 | 丁香花在线影院观看在线播放 | 久久久久av无码免费网 | 亚洲综合色区中文字幕 | 一本久道高清无码视频 | 免费国产黄网站在线观看 | 免费观看的无遮挡av | 久久这里只有精品视频9 | 日韩av无码中文无码电影 | 欧美性色19p | 综合网日日天干夜夜久久 | 午夜肉伦伦影院 | 又大又黄又粗又爽的免费视频 | 国产舌乚八伦偷品w中 | 夜夜高潮次次欢爽av女 | 亚洲精品国产第一综合99久久 | 久久国产精品萌白酱免费 | а√天堂www在线天堂小说 | 男人扒开女人内裤强吻桶进去 | 日韩人妻无码中文字幕视频 | 最近中文2019字幕第二页 | 色偷偷人人澡人人爽人人模 | 99久久亚洲精品无码毛片 | 欧洲熟妇精品视频 | 久久午夜夜伦鲁鲁片无码免费 | 国产成人无码午夜视频在线观看 | 久久zyz资源站无码中文动漫 | 亚洲国产精品成人久久蜜臀 | 一二三四在线观看免费视频 | 99久久婷婷国产综合精品青草免费 | 久热国产vs视频在线观看 | 九九综合va免费看 | 亚洲日韩av一区二区三区中文 | 亚洲小说图区综合在线 | 99久久99久久免费精品蜜桃 | 亚洲成色www久久网站 | 欧美肥老太牲交大战 | 美女黄网站人色视频免费国产 | 99久久无码一区人妻 | 国产人成高清在线视频99最全资源 | 又粗又大又硬毛片免费看 | 精品少妇爆乳无码av无码专区 | 成人毛片一区二区 | 欧美性生交活xxxxxdddd | 亚洲色无码一区二区三区 | 国产精品无码一区二区三区不卡 | 欧美国产日韩亚洲中文 | 在线精品国产一区二区三区 | 婷婷丁香六月激情综合啪 | 国精产品一品二品国精品69xx | 亚洲精品国产第一综合99久久 | 无码人妻久久一区二区三区不卡 | 一本大道久久东京热无码av | 大肉大捧一进一出好爽视频 | 在线天堂新版最新版在线8 | a在线亚洲男人的天堂 | 无码国内精品人妻少妇 | 日韩欧美中文字幕公布 | 丰满岳乱妇在线观看中字无码 | 亚洲人成网站色7799 | 中文精品久久久久人妻不卡 | 又黄又爽又色的视频 | 捆绑白丝粉色jk震动捧喷白浆 | 欧美老妇交乱视频在线观看 | 亚洲国产综合无码一区 | 天天躁夜夜躁狠狠是什么心态 | 中文字幕av伊人av无码av | 少妇厨房愉情理9仑片视频 | 无码人妻av免费一区二区三区 | 国产精品办公室沙发 | 东京热无码av男人的天堂 | 人妻aⅴ无码一区二区三区 | 久久精品国产日本波多野结衣 | 亚洲天堂2017无码 | 国产特级毛片aaaaaa高潮流水 | 久久亚洲精品中文字幕无男同 | 亲嘴扒胸摸屁股激烈网站 | 99精品久久毛片a片 | 国产精品丝袜黑色高跟鞋 | 亚洲综合无码久久精品综合 | 少妇性荡欲午夜性开放视频剧场 | 欧美老妇与禽交 | 九月婷婷人人澡人人添人人爽 | 欧美性猛交xxxx富婆 | 成人精品天堂一区二区三区 | 中文字幕无码免费久久99 | 日韩成人一区二区三区在线观看 | 老司机亚洲精品影院 | 国产午夜无码视频在线观看 | 国产激情艳情在线看视频 | 自拍偷自拍亚洲精品10p | 亚洲精品一区国产 | 日韩精品久久久肉伦网站 | 国产人妻人伦精品 | 18禁黄网站男男禁片免费观看 | 欧美亚洲日韩国产人成在线播放 | 亚洲一区二区三区 | 亚洲日韩av片在线观看 | 一本一道久久综合久久 | 巨爆乳无码视频在线观看 | 女人高潮内射99精品 | 国产区女主播在线观看 | 亚洲人成人无码网www国产 | 十八禁真人啪啪免费网站 | 亚洲 a v无 码免 费 成 人 a v | 亚洲区小说区激情区图片区 | 成年女人永久免费看片 | 亚洲自偷自拍另类第1页 | 国产凸凹视频一区二区 | 国产精品福利视频导航 | 亚洲毛片av日韩av无码 | 粗大的内捧猛烈进出视频 | 亚洲综合无码久久精品综合 | 国产激情一区二区三区 | 国产精品igao视频网 | 国产成人无码区免费内射一片色欲 | 欧美人与禽zoz0性伦交 | 亚洲一区二区三区含羞草 | 噜噜噜亚洲色成人网站 | 亚洲男人av天堂午夜在 | 激情五月综合色婷婷一区二区 | 精品国产福利一区二区 | 国产精品理论片在线观看 | 亚洲性无码av中文字幕 | 精品日本一区二区三区在线观看 | 人妻aⅴ无码一区二区三区 | 日韩欧美群交p片內射中文 | 日日摸夜夜摸狠狠摸婷婷 | 亚洲一区二区观看播放 | 日本护士毛茸茸高潮 | 中文字幕无码免费久久9一区9 | 黑人巨大精品欧美黑寡妇 | 国产精品人妻一区二区三区四 | 精品久久久无码人妻字幂 | 亚洲一区二区三区偷拍女厕 | 亚洲国产av美女网站 | 人妻体内射精一区二区三四 | 撕开奶罩揉吮奶头视频 | 欧美熟妇另类久久久久久不卡 | 久久综合激激的五月天 | 国产美女极度色诱视频www | 熟女少妇人妻中文字幕 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲精品一区二区三区在线 | 熟妇激情内射com | 免费观看黄网站 | 成人毛片一区二区 | 麻花豆传媒剧国产免费mv在线 | 大地资源网第二页免费观看 | 国产性生交xxxxx无码 | 精品厕所偷拍各类美女tp嘘嘘 | 中文字幕人妻无码一区二区三区 | 欧美熟妇另类久久久久久多毛 | 久久成人a毛片免费观看网站 | 日韩精品a片一区二区三区妖精 | 最近的中文字幕在线看视频 | 久久久久久国产精品无码下载 | 在线欧美精品一区二区三区 | 亚欧洲精品在线视频免费观看 | 国产精品鲁鲁鲁 | 国产精品亚洲一区二区三区喷水 | 国产精品久免费的黄网站 | ass日本丰满熟妇pics | 特黄特色大片免费播放器图片 | 一本精品99久久精品77 | 中文字幕无码日韩专区 | 国内精品久久久久久中文字幕 | 国产一区二区三区影院 | 亚洲色大成网站www国产 | 极品嫩模高潮叫床 | 强伦人妻一区二区三区视频18 | 久久久久99精品国产片 | 亚洲自偷精品视频自拍 | 天堂亚洲免费视频 | 丰满人妻翻云覆雨呻吟视频 | 国产av一区二区三区最新精品 | 久久精品人人做人人综合 | 内射爽无广熟女亚洲 | 全黄性性激高免费视频 | 国产成人无码专区 | 99久久精品午夜一区二区 | 国产成人亚洲综合无码 | 天天做天天爱天天爽综合网 | 国产手机在线αⅴ片无码观看 | 久久成人a毛片免费观看网站 | 国产精品美女久久久久av爽李琼 | a国产一区二区免费入口 | 国产手机在线αⅴ片无码观看 | 日本一区二区三区免费播放 | 少妇人妻av毛片在线看 | 偷窥日本少妇撒尿chinese | 国产乱人伦偷精品视频 | 日日天干夜夜狠狠爱 | 欧美阿v高清资源不卡在线播放 | 少妇性俱乐部纵欲狂欢电影 | 丝袜 中出 制服 人妻 美腿 | 国内综合精品午夜久久资源 | 久久精品中文字幕大胸 | 亚洲国产欧美国产综合一区 | 给我免费的视频在线观看 | √8天堂资源地址中文在线 | 爽爽影院免费观看 | 久久久亚洲欧洲日产国码αv | 少妇无码一区二区二三区 | 丰满少妇熟乱xxxxx视频 | 亚洲经典千人经典日产 | 欧美兽交xxxx×视频 | 国产一区二区三区精品视频 | 亚洲一区av无码专区在线观看 | 高潮毛片无遮挡高清免费视频 | 亚洲国产一区二区三区在线观看 | 精品国产乱码久久久久乱码 | 亚洲小说图区综合在线 | 无遮挡国产高潮视频免费观看 | 亚洲成熟女人毛毛耸耸多 | 欧美日本精品一区二区三区 | 久久国产劲爆∧v内射 | 粉嫩少妇内射浓精videos | 日日摸天天摸爽爽狠狠97 | 亚洲国精产品一二二线 | 国产黄在线观看免费观看不卡 | 亚洲一区二区观看播放 | 日本精品高清一区二区 | 窝窝午夜理论片影院 | 成人无码精品1区2区3区免费看 | 国产超级va在线观看视频 | 青青久在线视频免费观看 | 国产亚洲精品久久久久久久久动漫 | 无码人妻少妇伦在线电影 | 成在人线av无码免费 | 精品国产一区二区三区四区在线看 | 乌克兰少妇xxxx做受 | 性开放的女人aaa片 | 国产一区二区三区四区五区加勒比 | 欧美日韩人成综合在线播放 | 久久久久久久女国产乱让韩 | 亚洲精品久久久久久久久久久 | 老熟女重囗味hdxx69 | 好男人社区资源 | 久久午夜无码鲁丝片秋霞 | 亚洲а∨天堂久久精品2021 | 国内揄拍国内精品少妇国语 | 亚洲午夜久久久影院 | 亚洲 日韩 欧美 成人 在线观看 | 国产九九九九九九九a片 | 妺妺窝人体色www婷婷 | 扒开双腿吃奶呻吟做受视频 | 人人妻在人人 | 中文字幕无码免费久久9一区9 | 少妇无码av无码专区在线观看 | 亚洲欧洲日本无在线码 | 久久zyz资源站无码中文动漫 | 99国产精品白浆在线观看免费 | 亚洲精品国偷拍自产在线观看蜜桃 | 捆绑白丝粉色jk震动捧喷白浆 | 无码纯肉视频在线观看 | 又大又硬又爽免费视频 | 亚洲精品国产精品乱码不卡 | 欧美猛少妇色xxxxx | 99久久人妻精品免费二区 | 亚洲综合伊人久久大杳蕉 | 国产欧美精品一区二区三区 | 97精品国产97久久久久久免费 | 最近的中文字幕在线看视频 | 狠狠噜狠狠狠狠丁香五月 | 欧美老妇交乱视频在线观看 | 欧美人与动性行为视频 | 国产女主播喷水视频在线观看 | 亚洲人成影院在线观看 | 国产av人人夜夜澡人人爽麻豆 | 亚洲日韩av一区二区三区四区 | 久久国语露脸国产精品电影 | 中文字幕 亚洲精品 第1页 | 国产精品亚洲а∨无码播放麻豆 | aa片在线观看视频在线播放 | 蜜臀av无码人妻精品 | 影音先锋中文字幕无码 | 亚洲中文字幕va福利 | 永久黄网站色视频免费直播 | 少妇人妻大乳在线视频 | 两性色午夜免费视频 | 成人无码视频免费播放 | 日韩少妇白浆无码系列 | 偷窥日本少妇撒尿chinese | 2020久久香蕉国产线看观看 | 狠狠综合久久久久综合网 | 中文字幕无码热在线视频 | 国产免费久久久久久无码 | 粗大的内捧猛烈进出视频 | 无套内谢老熟女 | 在教室伦流澡到高潮hnp视频 | 性开放的女人aaa片 | 色欲久久久天天天综合网精品 | 久9re热视频这里只有精品 | 国产农村乱对白刺激视频 | 夜夜影院未满十八勿进 | 玩弄人妻少妇500系列视频 | 国产午夜精品一区二区三区嫩草 | 亚洲日韩中文字幕在线播放 | 久久久精品成人免费观看 | 国产午夜福利100集发布 | 亚洲成色www久久网站 | 国产亚洲精品久久久久久国模美 | 亚洲日韩一区二区三区 | 日韩精品无码一本二本三本色 | 无套内射视频囯产 | 无码精品国产va在线观看dvd | 2020久久超碰国产精品最新 | 日本熟妇乱子伦xxxx | 日本饥渴人妻欲求不满 | 国产精品久久久久9999小说 | 欧美黑人巨大xxxxx | 亚洲熟妇自偷自拍另类 | 国产精品欧美成人 | 亚洲欧美国产精品久久 | 性欧美疯狂xxxxbbbb | 欧洲美熟女乱又伦 | 国产成人精品视频ⅴa片软件竹菊 | 国产va免费精品观看 | 免费看男女做好爽好硬视频 | 久久久久av无码免费网 | 日韩精品无码免费一区二区三区 | 国产人妻大战黑人第1集 | 久久久久免费看成人影片 | 牲交欧美兽交欧美 | 99久久亚洲精品无码毛片 | 成人性做爰aaa片免费看不忠 | 欧美人与牲动交xxxx | 99久久人妻精品免费一区 | 十八禁视频网站在线观看 | 国产一精品一av一免费 | 九一九色国产 | 亚洲无人区一区二区三区 | 色噜噜亚洲男人的天堂 | 亚洲aⅴ无码成人网站国产app | 青草青草久热国产精品 | 小泽玛莉亚一区二区视频在线 | 亚洲天堂2017无码 | 国产精品igao视频网 | 牛和人交xxxx欧美 | 人妻尝试又大又粗久久 | 国产精品久久久久久久9999 | 高中生自慰www网站 | 精品乱码久久久久久久 | 亚洲国产高清在线观看视频 | 亚洲熟女一区二区三区 | ass日本丰满熟妇pics | 亚洲精品一区三区三区在线观看 | 九月婷婷人人澡人人添人人爽 | 六十路熟妇乱子伦 | 人人妻人人藻人人爽欧美一区 | 一个人看的视频www在线 | 国产亲子乱弄免费视频 | 国产免费久久久久久无码 | 日韩无套无码精品 | 日本爽爽爽爽爽爽在线观看免 | 国产网红无码精品视频 | 亚洲一区av无码专区在线观看 | 亚洲 高清 成人 动漫 | 97色伦图片97综合影院 | 欧美亚洲国产一区二区三区 | 亚洲国产一区二区三区在线观看 | 激情综合激情五月俺也去 | 强开小婷嫩苞又嫩又紧视频 | 久久精品成人欧美大片 | 久久久久国色av免费观看性色 | 久久精品一区二区三区四区 | 国产深夜福利视频在线 | 亚洲大尺度无码无码专区 | 久久国产精品偷任你爽任你 | 久久午夜无码鲁丝片午夜精品 | 领导边摸边吃奶边做爽在线观看 | 无码人中文字幕 | 国产特级毛片aaaaaa高潮流水 | 日日天干夜夜狠狠爱 | 亚洲一区av无码专区在线观看 | 久久午夜无码鲁丝片秋霞 | 亚洲а∨天堂久久精品2021 | 欧美黑人性暴力猛交喷水 | 一本久道久久综合婷婷五月 | 美女张开腿让人桶 | 国产又粗又硬又大爽黄老大爷视 | 啦啦啦www在线观看免费视频 | 国产精品亚洲综合色区韩国 | 中文精品无码中文字幕无码专区 | 欧美放荡的少妇 | 99麻豆久久久国产精品免费 | 狠狠色色综合网站 | 樱花草在线播放免费中文 | 人妻少妇精品视频专区 | 高潮毛片无遮挡高清免费 | 露脸叫床粗话东北少妇 | 性色欲网站人妻丰满中文久久不卡 | 无遮挡国产高潮视频免费观看 | 国产av人人夜夜澡人人爽麻豆 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 日韩人妻少妇一区二区三区 | 亚洲精品成a人在线观看 | 999久久久国产精品消防器材 | 免费看少妇作爱视频 | 国产两女互慰高潮视频在线观看 | 国产精品无码永久免费888 | 亚洲成色www久久网站 | 日韩av激情在线观看 | 久久久久人妻一区精品色欧美 | 久久综合九色综合97网 | 露脸叫床粗话东北少妇 | 精品国产国产综合精品 | 乱人伦人妻中文字幕无码久久网 | 午夜精品久久久久久久 | 国产明星裸体无码xxxx视频 | 国产xxx69麻豆国语对白 | 无套内谢老熟女 | yw尤物av无码国产在线观看 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 人人爽人人爽人人片av亚洲 | 少妇高潮一区二区三区99 | 日本爽爽爽爽爽爽在线观看免 | 国产高清不卡无码视频 | 亚洲日本在线电影 | 漂亮人妻洗澡被公强 日日躁 | 18无码粉嫩小泬无套在线观看 | 少妇太爽了在线观看 | 波多野结衣aⅴ在线 | 成人欧美一区二区三区黑人 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 日韩欧美群交p片內射中文 | 成人免费无码大片a毛片 | 亚洲精品一区二区三区在线 | 亚洲国产精品毛片av不卡在线 | 88国产精品欧美一区二区三区 | 免费视频欧美无人区码 | 俄罗斯老熟妇色xxxx | 国产乱人无码伦av在线a | 亚洲精品午夜国产va久久成人 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 久久综合网欧美色妞网 | 在线 国产 欧美 亚洲 天堂 | 中文字幕无码av波多野吉衣 | 欧美大屁股xxxxhd黑色 | 伊人久久大香线蕉亚洲 | 久久综合给久久狠狠97色 | 亚洲一区二区三区无码久久 | 久久五月精品中文字幕 | 日欧一片内射va在线影院 | 成人亚洲精品久久久久 | 亚洲人成网站免费播放 | 亚洲欧美精品aaaaaa片 | 久久97精品久久久久久久不卡 | 国产精品高潮呻吟av久久 | 在线成人www免费观看视频 | a在线观看免费网站大全 | 亚洲日韩一区二区 | 377p欧洲日本亚洲大胆 | 377p欧洲日本亚洲大胆 | 久久久久久久久888 | 成人无码影片精品久久久 | 欧美人与善在线com | 中文久久乱码一区二区 | 国产熟女一区二区三区四区五区 | 国产精品亚洲一区二区三区喷水 | 东京无码熟妇人妻av在线网址 | 久热国产vs视频在线观看 | 亚洲综合精品香蕉久久网 | 久久精品国产一区二区三区 | 99久久精品国产一区二区蜜芽 | 国产精品无套呻吟在线 | 人妻互换免费中文字幕 | 国产热a欧美热a在线视频 | 青草青草久热国产精品 | 久久精品人人做人人综合 | 少妇厨房愉情理9仑片视频 | 国产精品美女久久久 | 亚洲精品鲁一鲁一区二区三区 | 久久久久亚洲精品中文字幕 | 久久午夜无码鲁丝片午夜精品 | 丝袜足控一区二区三区 | 又湿又紧又大又爽a视频国产 | 久久99久久99精品中文字幕 | 帮老师解开蕾丝奶罩吸乳网站 | 十八禁真人啪啪免费网站 | 国产麻豆精品精东影业av网站 | 男人和女人高潮免费网站 | 亚洲精品一区二区三区在线观看 | 国产精品视频免费播放 | 国产农村乱对白刺激视频 | 色五月五月丁香亚洲综合网 | 久久天天躁狠狠躁夜夜免费观看 | 青青青手机频在线观看 | 性做久久久久久久免费看 | 久久天天躁狠狠躁夜夜免费观看 | 99久久精品无码一区二区毛片 | 国产精品手机免费 | 黑人玩弄人妻中文在线 | 亚洲国产精品毛片av不卡在线 | 精品偷拍一区二区三区在线看 | 午夜精品一区二区三区在线观看 | 欧美人与禽zoz0性伦交 | 精品厕所偷拍各类美女tp嘘嘘 | 4hu四虎永久在线观看 | 99久久人妻精品免费二区 | 3d动漫精品啪啪一区二区中 | 欧美日韩一区二区三区自拍 | 丰满妇女强制高潮18xxxx | 欧美 日韩 人妻 高清 中文 | 丰满岳乱妇在线观看中字无码 | 欧美真人作爱免费视频 | 国产人妻久久精品二区三区老狼 | 国产亚洲精品久久久久久大师 | 亚洲色大成网站www国产 | 少妇被黑人到高潮喷出白浆 | 国产亚洲欧美在线专区 | 精品偷拍一区二区三区在线看 | 人妻少妇精品久久 | 最近免费中文字幕中文高清百度 | 国产日产欧产精品精品app | 久久久久久久人妻无码中文字幕爆 | 免费观看的无遮挡av | 波多野结衣高清一区二区三区 | 国产两女互慰高潮视频在线观看 | 国产真实乱对白精彩久久 | 久久国产精品_国产精品 | 久久综合网欧美色妞网 | 久久精品人人做人人综合 | 欧美放荡的少妇 | 精品久久8x国产免费观看 | 免费乱码人妻系列无码专区 | 欧美xxxx黑人又粗又长 | 欧美国产亚洲日韩在线二区 | 黑人大群体交免费视频 | 夜夜躁日日躁狠狠久久av | 狠狠色噜噜狠狠狠狠7777米奇 | 国产精品高潮呻吟av久久 | 又湿又紧又大又爽a视频国产 | 国产精品亚洲а∨无码播放麻豆 | 国产av一区二区精品久久凹凸 | 国产色视频一区二区三区 | 扒开双腿疯狂进出爽爽爽视频 | 久久国产精品萌白酱免费 | 天天拍夜夜添久久精品 | 精品aⅴ一区二区三区 | 精品一二三区久久aaa片 | 巨爆乳无码视频在线观看 | 国产精品手机免费 | 色噜噜亚洲男人的天堂 | 中文字幕无码日韩专区 | 日日天干夜夜狠狠爱 | 欧美三级不卡在线观看 | 亚洲大尺度无码无码专区 | 午夜精品一区二区三区在线观看 | 熟女俱乐部五十路六十路av | 无遮挡国产高潮视频免费观看 | 中文精品久久久久人妻不卡 | 亚洲精品一区二区三区大桥未久 | 国产深夜福利视频在线 | 2019午夜福利不卡片在线 | 一本加勒比波多野结衣 | 性生交大片免费看女人按摩摩 | 亚洲熟妇色xxxxx欧美老妇 | 亚洲欧美中文字幕5发布 | 国产又粗又硬又大爽黄老大爷视 | 300部国产真实乱 | 精品无码国产一区二区三区av | 精品国产成人一区二区三区 | 在线欧美精品一区二区三区 | 十八禁视频网站在线观看 | 99久久99久久免费精品蜜桃 | 国产偷抇久久精品a片69 | 国产精品久久国产三级国 | 国精品人妻无码一区二区三区蜜柚 | 美女黄网站人色视频免费国产 | 精品国产青草久久久久福利 | 牛和人交xxxx欧美 | 国产成人精品久久亚洲高清不卡 | 7777奇米四色成人眼影 | 精品无码av一区二区三区 | 婷婷综合久久中文字幕蜜桃三电影 | 日本一区二区三区免费高清 | 偷窥村妇洗澡毛毛多 | 日本欧美一区二区三区乱码 | 成人毛片一区二区 | 婷婷五月综合激情中文字幕 | 中文字幕av日韩精品一区二区 | 成年女人永久免费看片 | 无码人妻丰满熟妇区毛片18 | 婷婷丁香五月天综合东京热 | 国产无遮挡又黄又爽免费视频 | 99视频精品全部免费免费观看 | 999久久久国产精品消防器材 | 日本精品少妇一区二区三区 | 精品乱码久久久久久久 | 亚洲性无码av中文字幕 | 日日摸日日碰夜夜爽av | 亚洲精品www久久久 | 伊在人天堂亚洲香蕉精品区 | 国产精品久久久 | 成人免费视频视频在线观看 免费 | 人妻少妇精品视频专区 | 久久综合网欧美色妞网 | 久久精品女人天堂av免费观看 | 性啪啪chinese东北女人 | 狠狠综合久久久久综合网 | 国产成人精品一区二区在线小狼 | 亚洲无人区一区二区三区 | 亚洲人成影院在线观看 | 久久精品无码一区二区三区 | 亚洲精品国偷拍自产在线观看蜜桃 | 强开小婷嫩苞又嫩又紧视频 | 少妇太爽了在线观看 | 亚洲熟悉妇女xxx妇女av | 波多野结衣av一区二区全免费观看 | 久久精品99久久香蕉国产色戒 | 97久久国产亚洲精品超碰热 | 少妇激情av一区二区 | 少妇高潮喷潮久久久影院 | 麻豆国产丝袜白领秘书在线观看 | 沈阳熟女露脸对白视频 | 一个人看的www免费视频在线观看 | 久久精品国产99久久6动漫 | 国产精品毛多多水多 | 欧美日本免费一区二区三区 | 精品一二三区久久aaa片 | 国产精品成人av在线观看 | 四虎永久在线精品免费网址 | 强开小婷嫩苞又嫩又紧视频 | 久久久久久久人妻无码中文字幕爆 | 亚洲s码欧洲m码国产av | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产精品久久久一区二区三区 | 成人三级无码视频在线观看 | 久久久成人毛片无码 | 久激情内射婷内射蜜桃人妖 | 亚洲精品成人av在线 | 日日噜噜噜噜夜夜爽亚洲精品 | 精品欧洲av无码一区二区三区 | 欧洲熟妇色 欧美 | 日日碰狠狠躁久久躁蜜桃 | 午夜无码区在线观看 | 欧美国产亚洲日韩在线二区 | 免费人成在线观看网站 | 日产精品99久久久久久 | 妺妺窝人体色www在线小说 | 午夜精品一区二区三区在线观看 | 国产特级毛片aaaaaa高潮流水 | 又湿又紧又大又爽a视频国产 | 中文字幕无线码 | 思思久久99热只有频精品66 | 一本色道久久综合狠狠躁 | 老熟女重囗味hdxx69 | 国色天香社区在线视频 | 欧洲美熟女乱又伦 | 天下第一社区视频www日本 | 国产午夜亚洲精品不卡 | 中文字幕日产无线码一区 | 夜夜高潮次次欢爽av女 | 国模大胆一区二区三区 | 又色又爽又黄的美女裸体网站 | 国产无av码在线观看 | 精品无码一区二区三区爱欲 | 久久综合激激的五月天 | 一本无码人妻在中文字幕免费 | 日本va欧美va欧美va精品 | 精品无码国产一区二区三区av | 东京热无码av男人的天堂 | 久久天天躁夜夜躁狠狠 | аⅴ资源天堂资源库在线 | 全球成人中文在线 | 久久久久久久久蜜桃 | 国产成人一区二区三区在线观看 | 2019午夜福利不卡片在线 | 欧美成人家庭影院 | 国产在线精品一区二区高清不卡 | 西西人体www44rt大胆高清 | 中文字幕日韩精品一区二区三区 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产深夜福利视频在线 | 久久这里只有精品视频9 | 国产亚洲精品久久久久久 | 无码纯肉视频在线观看 | 久久成人a毛片免费观看网站 | 久久久久99精品国产片 | 无码人妻丰满熟妇区五十路百度 | 中文字幕无线码 | 国产一区二区不卡老阿姨 | 亚洲日本一区二区三区在线 | 亚洲色在线无码国产精品不卡 | 亚洲精品国偷拍自产在线麻豆 | 成人三级无码视频在线观看 | 中文字幕无码av激情不卡 | 精品国精品国产自在久国产87 | 国产精品办公室沙发 | 成人综合网亚洲伊人 | 国产欧美精品一区二区三区 | 中文字幕人妻无码一夲道 | 亚洲区小说区激情区图片区 | 天天拍夜夜添久久精品 | 国产suv精品一区二区五 | 一本久道久久综合婷婷五月 | 国产乱人伦偷精品视频 | 55夜色66夜色国产精品视频 | 国产av一区二区三区最新精品 | 亚洲中文字幕无码中字 | 国产精品毛多多水多 | 在线а√天堂中文官网 | 欧美国产日韩亚洲中文 | 久久久久免费精品国产 | 丰腴饱满的极品熟妇 | 精品人妻人人做人人爽 | 伊人色综合久久天天小片 | 亚洲日韩乱码中文无码蜜桃臀网站 | 免费人成网站视频在线观看 | 成人片黄网站色大片免费观看 | 日本肉体xxxx裸交 | 丁香啪啪综合成人亚洲 | 双乳奶水饱满少妇呻吟 | 国产9 9在线 | 中文 | 波多野结衣乳巨码无在线观看 | 欧美亚洲日韩国产人成在线播放 | 无遮挡啪啪摇乳动态图 | 小sao货水好多真紧h无码视频 | 国产精品成人av在线观看 | 久久精品女人的天堂av | 婷婷五月综合激情中文字幕 | 亚洲国产精品一区二区美利坚 | 西西人体www44rt大胆高清 | 亚洲а∨天堂久久精品2021 | 九月婷婷人人澡人人添人人爽 | 国产午夜福利亚洲第一 | 暴力强奷在线播放无码 | 曰本女人与公拘交酡免费视频 | 日韩av激情在线观看 | 久久久亚洲欧洲日产国码αv | 成人欧美一区二区三区黑人 | 成人免费视频视频在线观看 免费 | 好男人www社区 | 日日橹狠狠爱欧美视频 | 国产女主播喷水视频在线观看 | 蜜桃视频插满18在线观看 | 久久精品国产99精品亚洲 | 国产偷国产偷精品高清尤物 | 亚洲国产精品无码一区二区三区 | 四虎国产精品免费久久 | 欧美成人午夜精品久久久 | 久久这里只有精品视频9 | 亚洲国产av精品一区二区蜜芽 | 麻豆国产97在线 | 欧洲 | 俄罗斯老熟妇色xxxx | 午夜精品一区二区三区在线观看 | 欧美人与物videos另类 | 夜夜夜高潮夜夜爽夜夜爰爰 | 欧洲精品码一区二区三区免费看 | 老熟女乱子伦 | 国产suv精品一区二区五 | 未满小14洗澡无码视频网站 | 色诱久久久久综合网ywww | 2020久久香蕉国产线看观看 | 熟妇女人妻丰满少妇中文字幕 | 久久久久久a亚洲欧洲av冫 | 亚洲热妇无码av在线播放 | 免费人成在线观看网站 | 人妻尝试又大又粗久久 | 亚洲热妇无码av在线播放 | 丰满岳乱妇在线观看中字无码 | 99久久精品午夜一区二区 | 亚洲熟妇色xxxxx欧美老妇 | 国产在线aaa片一区二区99 | 亚洲日韩乱码中文无码蜜桃臀网站 | 成人无码视频在线观看网站 | 大屁股大乳丰满人妻 | 少妇激情av一区二区 | 日本饥渴人妻欲求不满 | 免费播放一区二区三区 | 国产在线一区二区三区四区五区 | 又大又硬又黄的免费视频 | 狠狠cao日日穞夜夜穞av | 欧美性黑人极品hd | 波多野结衣av一区二区全免费观看 | 久精品国产欧美亚洲色aⅴ大片 | 国产精品久免费的黄网站 | 97精品人妻一区二区三区香蕉 | 国产香蕉97碰碰久久人人 | 久久人人爽人人人人片 | 狂野欧美性猛交免费视频 | 欧洲欧美人成视频在线 | 亚洲精品一区二区三区四区五区 | 日本护士xxxxhd少妇 | 国产无遮挡吃胸膜奶免费看 | 精品无码一区二区三区的天堂 | 中文字幕人妻丝袜二区 | 欧美变态另类xxxx | 国产熟女一区二区三区四区五区 | 久久人人爽人人爽人人片av高清 | 国产网红无码精品视频 | 四虎国产精品免费久久 | 自拍偷自拍亚洲精品被多人伦好爽 | 成人免费视频视频在线观看 免费 | 日本精品久久久久中文字幕 | 无码精品国产va在线观看dvd | 亚洲自偷自拍另类第1页 | 国产精品久久久久久亚洲影视内衣 | 亚洲爆乳精品无码一区二区三区 | 中文精品久久久久人妻不卡 | 亚洲精品国偷拍自产在线麻豆 | 久久成人a毛片免费观看网站 | 国产综合色产在线精品 | 免费男性肉肉影院 | 亚洲欧美精品伊人久久 | 国产偷自视频区视频 | 老太婆性杂交欧美肥老太 | 成人免费视频视频在线观看 免费 | 久久人人97超碰a片精品 | 国产午夜精品一区二区三区嫩草 | 国产免费久久久久久无码 | 思思久久99热只有频精品66 | 极品嫩模高潮叫床 | 无遮挡啪啪摇乳动态图 | 国产亚洲精品久久久ai换 | 精品国精品国产自在久国产87 | 国产成人精品无码播放 | 国产精品久久久一区二区三区 | 国产精品无码mv在线观看 | 欧美阿v高清资源不卡在线播放 | 国产精品第一区揄拍无码 | 内射巨臀欧美在线视频 | 无码人妻久久一区二区三区不卡 | 熟妇激情内射com | 丰满人妻被黑人猛烈进入 | 熟女体下毛毛黑森林 | 午夜精品一区二区三区的区别 | 一区二区三区高清视频一 | 国产免费久久精品国产传媒 | 亚洲中文无码av永久不收费 | 少妇无码一区二区二三区 | 亚洲中文字幕在线无码一区二区 | 久久精品女人天堂av免费观看 | 中文字幕久久久久人妻 | 精品无人国产偷自产在线 | 亚洲精品鲁一鲁一区二区三区 | 无码人妻出轨黑人中文字幕 | 日韩少妇内射免费播放 | 1000部夫妻午夜免费 | a在线亚洲男人的天堂 | 伊人色综合久久天天小片 | 久久成人a毛片免费观看网站 | 精品国产一区二区三区四区在线看 | 白嫩日本少妇做爰 | 亚洲 a v无 码免 费 成 人 a v | 人人妻人人澡人人爽精品欧美 | 免费无码午夜福利片69 | 亚洲精品久久久久久一区二区 | 男女性色大片免费网站 | 国产电影无码午夜在线播放 | 久久综合香蕉国产蜜臀av | 未满小14洗澡无码视频网站 | 欧美丰满老熟妇xxxxx性 | 亚洲七七久久桃花影院 | 蜜臀av在线播放 久久综合激激的五月天 | 波多野结衣av一区二区全免费观看 | 亚洲爆乳精品无码一区二区三区 | 国产精品无码永久免费888 | 午夜丰满少妇性开放视频 | 国产精品二区一区二区aⅴ污介绍 | аⅴ资源天堂资源库在线 | 欧美阿v高清资源不卡在线播放 | 国产福利视频一区二区 | 国产人妖乱国产精品人妖 | 国产精品美女久久久 | 亚洲精品中文字幕乱码 | 中文字幕无码av波多野吉衣 | 青青久在线视频免费观看 | 亚洲精品久久久久久久久久久 | 国产婷婷色一区二区三区在线 | 3d动漫精品啪啪一区二区中 | 亚洲小说图区综合在线 | 天堂无码人妻精品一区二区三区 | 99精品视频在线观看免费 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 男女下面进入的视频免费午夜 | 波多野结衣高清一区二区三区 | 色婷婷久久一区二区三区麻豆 | 精品国产一区av天美传媒 | 欧美日韩视频无码一区二区三 | 欧美性黑人极品hd | 久久伊人色av天堂九九小黄鸭 | 久久人人爽人人爽人人片av高清 | 国产人妻精品一区二区三区 | a国产一区二区免费入口 | 狠狠色丁香久久婷婷综合五月 | 久久久久久久人妻无码中文字幕爆 | 中文字幕无码视频专区 | 午夜时刻免费入口 | 亚洲成a人一区二区三区 | 精品 日韩 国产 欧美 视频 | 国产另类ts人妖一区二区 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产色视频一区二区三区 | 天天拍夜夜添久久精品 | 国产 精品 自在自线 | 性做久久久久久久免费看 | 国产xxx69麻豆国语对白 | 国产在线无码精品电影网 | 亚洲人亚洲人成电影网站色 | 99精品无人区乱码1区2区3区 | 日本精品人妻无码免费大全 | 欧洲熟妇色 欧美 | 亚洲欧美精品aaaaaa片 | 精品无码国产一区二区三区av | 无码成人精品区在线观看 | 精品国精品国产自在久国产87 | 久久精品成人欧美大片 | 亚洲精品国产第一综合99久久 | 欧美成人午夜精品久久久 | 精品国产一区二区三区四区在线看 | 国产亚洲精品久久久久久国模美 | 国产9 9在线 | 中文 | 亚洲中文字幕久久无码 | 九月婷婷人人澡人人添人人爽 | 高潮毛片无遮挡高清免费视频 | 国产片av国语在线观看 | 亚洲国产综合无码一区 | 免费无码的av片在线观看 | 精品国产一区二区三区av 性色 | 欧美真人作爱免费视频 | 色一情一乱一伦一区二区三欧美 | 最新版天堂资源中文官网 | 欧美激情一区二区三区成人 | 亚洲a无码综合a国产av中文 | 久久久久久国产精品无码下载 | 久久久久久久久888 | 97久久精品无码一区二区 | 国产亚洲美女精品久久久2020 | 国产在线一区二区三区四区五区 | 国产猛烈高潮尖叫视频免费 | 亚洲综合伊人久久大杳蕉 | 亚洲国产精品成人久久蜜臀 | 日本爽爽爽爽爽爽在线观看免 | 亚洲欧洲中文日韩av乱码 | 国产精品亚洲а∨无码播放麻豆 | 一二三四社区在线中文视频 | 亚洲精品一区三区三区在线观看 | 午夜精品久久久内射近拍高清 | 亚洲va欧美va天堂v国产综合 | 国产精品久久久午夜夜伦鲁鲁 | 97无码免费人妻超级碰碰夜夜 | 久久国产精品精品国产色婷婷 | 中文字幕 人妻熟女 | 牛和人交xxxx欧美 | 亚洲中文字幕av在天堂 | 国产黑色丝袜在线播放 | 亚洲一区二区三区香蕉 | 少妇人妻偷人精品无码视频 | 久久久久亚洲精品男人的天堂 | 亚洲精品国偷拍自产在线麻豆 | 欧美熟妇另类久久久久久不卡 | 亚洲精品国产精品乱码不卡 | 熟妇人妻激情偷爽文 | 国产av久久久久精东av | 亚洲人成影院在线无码按摩店 | 青青草原综合久久大伊人精品 | 在线观看国产午夜福利片 | 最新国产乱人伦偷精品免费网站 | 亚洲大尺度无码无码专区 | 亚洲欧美国产精品久久 | 亚洲精品中文字幕 | 国产熟妇高潮叫床视频播放 | 波多野结衣av在线观看 | 欧美黑人巨大xxxxx | 国产sm调教视频在线观看 | 欧洲美熟女乱又伦 | 狂野欧美激情性xxxx | 国精产品一品二品国精品69xx | 无遮挡国产高潮视频免费观看 | 377p欧洲日本亚洲大胆 | 成人精品视频一区二区 | 麻豆国产97在线 | 欧洲 | 国内精品久久久久久中文字幕 | 欧美亚洲国产一区二区三区 | 久久精品视频在线看15 | 性啪啪chinese东北女人 | 国产精品99爱免费视频 | 亚洲精品一区二区三区婷婷月 | 国产美女极度色诱视频www | 亚洲熟妇色xxxxx欧美老妇y | 国内精品人妻无码久久久影院蜜桃 | 国产精品二区一区二区aⅴ污介绍 | 国产女主播喷水视频在线观看 | 免费观看黄网站 | 亚洲男女内射在线播放 | 国产小呦泬泬99精品 | 日本va欧美va欧美va精品 | 人妻插b视频一区二区三区 | 久久婷婷五月综合色国产香蕉 | 日日摸日日碰夜夜爽av | 国产另类ts人妖一区二区 | 老熟妇乱子伦牲交视频 | 色一情一乱一伦一区二区三欧美 | 国产亚洲精品久久久久久久久动漫 | 亚洲の无码国产の无码影院 | 对白脏话肉麻粗话av | 老子影院午夜伦不卡 | 亚洲中文无码av永久不收费 | 国产精品理论片在线观看 | 久久99热只有频精品8 | 成人欧美一区二区三区 | 日韩欧美群交p片內射中文 | 综合人妻久久一区二区精品 | 免费看男女做好爽好硬视频 | 狠狠色丁香久久婷婷综合五月 | 蜜臀av无码人妻精品 | 亚洲阿v天堂在线 | 熟妇人妻中文av无码 | 欧美日韩综合一区二区三区 | 老太婆性杂交欧美肥老太 | 亚洲伊人久久精品影院 | 精品夜夜澡人妻无码av蜜桃 | 中文无码成人免费视频在线观看 | 久久久国产精品无码免费专区 | 又大又紧又粉嫩18p少妇 | 精品一区二区三区无码免费视频 | 一本无码人妻在中文字幕免费 | 国产一区二区三区四区五区加勒比 | 亚洲 日韩 欧美 成人 在线观看 | 一个人看的视频www在线 | 精品国产麻豆免费人成网站 | 国产亚洲欧美日韩亚洲中文色 | 欧美日韩在线亚洲综合国产人 | 中文字幕乱妇无码av在线 | 无码人妻黑人中文字幕 | 精品国产aⅴ无码一区二区 | 亚洲第一无码av无码专区 | 日本熟妇乱子伦xxxx | 亚洲а∨天堂久久精品2021 | 国产两女互慰高潮视频在线观看 | 亚洲午夜福利在线观看 | 骚片av蜜桃精品一区 | 色综合久久88色综合天天 | 欧美三级不卡在线观看 | 久久午夜无码鲁丝片午夜精品 | 色婷婷欧美在线播放内射 | 国产亚洲精品久久久久久久久动漫 | 一个人看的www免费视频在线观看 | 熟妇人妻无乱码中文字幕 | 又紧又大又爽精品一区二区 | 狂野欧美性猛xxxx乱大交 | 日本又色又爽又黄的a片18禁 | 丝袜 中出 制服 人妻 美腿 | 乱人伦人妻中文字幕无码久久网 | 久久亚洲中文字幕精品一区 | 久久人妻内射无码一区三区 | 亚洲热妇无码av在线播放 | 少妇久久久久久人妻无码 | 无码帝国www无码专区色综合 | 老熟妇仑乱视频一区二区 | 最近免费中文字幕中文高清百度 | 国产特级毛片aaaaaaa高清 | 精品久久久无码中文字幕 | 久久人人爽人人爽人人片ⅴ | 国产办公室秘书无码精品99 | 亚洲精品美女久久久久久久 | 99久久久无码国产aaa精品 | 国产69精品久久久久app下载 | 国产免费观看黄av片 | 欧美人与禽zoz0性伦交 | 日韩精品无码一区二区中文字幕 | 成人免费视频一区二区 | 久久99精品国产.久久久久 | 人人爽人人爽人人片av亚洲 | 中文字幕人妻无码一区二区三区 | 久久午夜夜伦鲁鲁片无码免费 | 欧美成人午夜精品久久久 | 99视频精品全部免费免费观看 | 老太婆性杂交欧美肥老太 | 性色av无码免费一区二区三区 | 欧美精品一区二区精品久久 | 天堂无码人妻精品一区二区三区 | 玩弄少妇高潮ⅹxxxyw | 国产免费久久久久久无码 | 国产精品无码久久av | 强奷人妻日本中文字幕 | ass日本丰满熟妇pics | 99久久久无码国产精品免费 | 人妻有码中文字幕在线 | 国产麻豆精品一区二区三区v视界 | 特大黑人娇小亚洲女 | 露脸叫床粗话东北少妇 | 漂亮人妻洗澡被公强 日日躁 | 国产精品二区一区二区aⅴ污介绍 | 亚洲国产精品毛片av不卡在线 | 18黄暴禁片在线观看 | 亚洲乱码国产乱码精品精 | 国产成人无码区免费内射一片色欲 | 精品国产乱码久久久久乱码 | 丰满人妻一区二区三区免费视频 | 性色欲情网站iwww九文堂 | 爽爽影院免费观看 | 女人被爽到呻吟gif动态图视看 | 夜夜夜高潮夜夜爽夜夜爰爰 | 九九热爱视频精品 | 亚洲高清偷拍一区二区三区 | 久久人人爽人人爽人人片av高清 | 福利一区二区三区视频在线观看 | 曰本女人与公拘交酡免费视频 | 国产亚洲人成a在线v网站 | 精品欧洲av无码一区二区三区 | 国产综合色产在线精品 | 一本久道久久综合婷婷五月 | 99精品国产综合久久久久五月天 | 欧美日韩综合一区二区三区 | 亚洲成av人在线观看网址 | 午夜精品久久久久久久久 | 日本饥渴人妻欲求不满 | 国产尤物精品视频 | 久久精品中文闷骚内射 | 白嫩日本少妇做爰 | 一二三四社区在线中文视频 | 99在线 | 亚洲 | 精品亚洲韩国一区二区三区 | 女人被爽到呻吟gif动态图视看 | 老熟妇乱子伦牲交视频 | 亚洲精品一区二区三区在线观看 | 国产精品理论片在线观看 | 久久精品丝袜高跟鞋 | 美女黄网站人色视频免费国产 | 日日夜夜撸啊撸 | 少妇性俱乐部纵欲狂欢电影 | 亚洲一区二区三区在线观看网站 | 无码人妻出轨黑人中文字幕 | 麻豆国产丝袜白领秘书在线观看 | 美女扒开屁股让男人桶 | 狠狠cao日日穞夜夜穞av | 99精品久久毛片a片 | 国产成人精品一区二区在线小狼 | 日本丰满护士爆乳xxxx | 99精品无人区乱码1区2区3区 | 国产99久久精品一区二区 | 久久久久99精品成人片 | 亚洲天堂2017无码 | 女人被男人爽到呻吟的视频 | 日韩欧美中文字幕在线三区 | 成在人线av无码免观看麻豆 | 国产精品免费大片 | 亚洲区欧美区综合区自拍区 | 最新版天堂资源中文官网 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 2020久久超碰国产精品最新 | 亚洲熟妇色xxxxx欧美老妇y | 精品国产一区二区三区四区在线看 | 欧洲精品码一区二区三区免费看 | 精品国产一区二区三区四区在线看 | 无码免费一区二区三区 | 亚洲精品欧美二区三区中文字幕 | 伊人久久大香线蕉av一区二区 | 成人精品视频一区二区三区尤物 | 动漫av一区二区在线观看 | 日韩欧美中文字幕在线三区 | 欧美xxxxx精品 | 精品一区二区三区无码免费视频 | 日韩少妇内射免费播放 | 国语精品一区二区三区 | 精品国产成人一区二区三区 | 亚洲国产日韩a在线播放 | 中文字幕无码免费久久99 | 日韩在线不卡免费视频一区 | 国产精品鲁鲁鲁 | 日日鲁鲁鲁夜夜爽爽狠狠 | 天堂无码人妻精品一区二区三区 | 国产偷自视频区视频 | 国产亚洲精品久久久久久久 | 国产精品理论片在线观看 | 97无码免费人妻超级碰碰夜夜 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产精品久久久av久久久 | 国产激情一区二区三区 | 女人被男人爽到呻吟的视频 | 97精品人妻一区二区三区香蕉 | 精品欧洲av无码一区二区三区 | 国产福利视频一区二区 | 7777奇米四色成人眼影 | 亚洲国产高清在线观看视频 | 精品国产乱码久久久久乱码 | 一个人看的视频www在线 | 无码成人精品区在线观看 | 久在线观看福利视频 | av香港经典三级级 在线 | 色偷偷人人澡人人爽人人模 | 亚洲人成网站免费播放 | 天堂亚洲免费视频 | 免费无码av一区二区 | 久久久久久久女国产乱让韩 | 九九热爱视频精品 | 国产成人精品视频ⅴa片软件竹菊 | 午夜性刺激在线视频免费 | 国内精品人妻无码久久久影院 | 国产精品资源一区二区 | 亚洲国产综合无码一区 | 国产九九九九九九九a片 | 免费人成在线视频无码 | 欧美性生交活xxxxxdddd | 日日碰狠狠丁香久燥 | 精品一区二区不卡无码av | 精品无码国产一区二区三区av | 亚洲人亚洲人成电影网站色 | 中文字幕无码av激情不卡 | 亚洲日韩乱码中文无码蜜桃臀网站 | 最新国产乱人伦偷精品免费网站 | 欧美丰满老熟妇xxxxx性 | 一本久久a久久精品vr综合 | 国产人妻精品一区二区三区不卡 | 性欧美熟妇videofreesex | 日本va欧美va欧美va精品 | 一本大道伊人av久久综合 | 人妻熟女一区 | 东京热男人av天堂 | 亚洲最大成人网站 | 少妇人妻偷人精品无码视频 | 丝袜美腿亚洲一区二区 | 中文字幕 亚洲精品 第1页 | 成人精品视频一区二区三区尤物 | 亚洲中文字幕av在天堂 | 精品厕所偷拍各类美女tp嘘嘘 | 一本久久伊人热热精品中文字幕 | 99国产精品白浆在线观看免费 | 成人综合网亚洲伊人 | 中文字幕无码av波多野吉衣 | 精品无码国产一区二区三区av | 久久精品99久久香蕉国产色戒 | 丰满诱人的人妻3 | 亚洲精品中文字幕 | 国产极品视觉盛宴 | 少妇无码吹潮 | 97久久精品无码一区二区 | 高清不卡一区二区三区 | 中国大陆精品视频xxxx | 午夜无码区在线观看 | 狂野欧美性猛交免费视频 | 国产亚洲精品久久久久久国模美 | 精品国产av色一区二区深夜久久 | 国产无av码在线观看 | 波多野结衣高清一区二区三区 | 久久久久久av无码免费看大片 | 色综合视频一区二区三区 | 大乳丰满人妻中文字幕日本 | 国产精品香蕉在线观看 | 久久精品人妻少妇一区二区三区 | 熟女少妇在线视频播放 | 国产精品高潮呻吟av久久4虎 | 久久久国产精品无码免费专区 | 水蜜桃色314在线观看 | 丝袜 中出 制服 人妻 美腿 | 俄罗斯老熟妇色xxxx | 久9re热视频这里只有精品 | 精品无人国产偷自产在线 | 麻豆国产人妻欲求不满 | 久久久无码中文字幕久... | 国内精品人妻无码久久久影院蜜桃 | 亚洲精品成人av在线 | 动漫av网站免费观看 | 久久成人a毛片免费观看网站 | 国产在线一区二区三区四区五区 | 女人被爽到呻吟gif动态图视看 | 精品偷拍一区二区三区在线看 | 一本色道久久综合亚洲精品不卡 | 欧美自拍另类欧美综合图片区 | 日本一区二区三区免费播放 | 日本欧美一区二区三区乱码 | 少妇人妻av毛片在线看 | 色一情一乱一伦 | 内射白嫩少妇超碰 | 国产精品美女久久久网av | 无码人妻精品一区二区三区不卡 | 亚洲日韩av一区二区三区四区 | 丰满岳乱妇在线观看中字无码 | 无码纯肉视频在线观看 | 亚洲熟妇色xxxxx欧美老妇 | 曰韩无码二三区中文字幕 | 亚洲日韩一区二区 | 国产va免费精品观看 | 国产 浪潮av性色四虎 | 四十如虎的丰满熟妇啪啪 | 国产高清av在线播放 | 久久国语露脸国产精品电影 | 丰满岳乱妇在线观看中字无码 | 成在人线av无码免费 | а天堂中文在线官网 | 免费观看黄网站 | 大肉大捧一进一出视频出来呀 | 人人妻人人澡人人爽欧美精品 | 精品欧美一区二区三区久久久 | 久久久久久亚洲精品a片成人 | 国产av人人夜夜澡人人爽麻豆 | 日本大香伊一区二区三区 | 黑人大群体交免费视频 | 国产片av国语在线观看 | 在线看片无码永久免费视频 | 亚洲色欲久久久综合网东京热 | 兔费看少妇性l交大片免费 | 粗大的内捧猛烈进出视频 | 天天拍夜夜添久久精品大 | 精品熟女少妇av免费观看 | 欧美午夜特黄aaaaaa片 | 久久久久免费精品国产 | 国产一区二区三区影院 | 天天爽夜夜爽夜夜爽 | 午夜性刺激在线视频免费 | 国产精品久久久av久久久 | 77777熟女视频在线观看 а天堂中文在线官网 | 国产综合久久久久鬼色 | 蜜臀aⅴ国产精品久久久国产老师 | 十八禁真人啪啪免费网站 | 国内精品人妻无码久久久影院 | 国产区女主播在线观看 | 特黄特色大片免费播放器图片 | 成人动漫在线观看 | 狂野欧美性猛xxxx乱大交 | 亚洲日韩精品欧美一区二区 | 草草网站影院白丝内射 | 乱人伦中文视频在线观看 | 在教室伦流澡到高潮hnp视频 | 亚洲精品无码国产 | 久久久中文字幕日本无吗 | 午夜肉伦伦影院 | 久久精品国产一区二区三区 | 精品久久久中文字幕人妻 | 一本一道久久综合久久 | 色综合久久久久综合一本到桃花网 | 中文亚洲成a人片在线观看 | 一本久道久久综合婷婷五月 | 5858s亚洲色大成网站www | 强奷人妻日本中文字幕 | 清纯唯美经典一区二区 | 亚洲一区二区三区香蕉 | 欧美日韩一区二区三区自拍 | 未满成年国产在线观看 | 国产真实伦对白全集 | 天下第一社区视频www日本 | 日日天日日夜日日摸 | 欧美激情综合亚洲一二区 | 久久久久亚洲精品男人的天堂 | 亚洲综合无码久久精品综合 | 呦交小u女精品视频 | 久久99久久99精品中文字幕 | 欧美高清在线精品一区 | 亚洲精品鲁一鲁一区二区三区 | 欧美人妻一区二区三区 | 日韩av激情在线观看 | 人人妻人人澡人人爽欧美精品 | 中文字幕 亚洲精品 第1页 | 俺去俺来也在线www色官网 | 成人女人看片免费视频放人 | 国产人妻精品一区二区三区不卡 | 亚洲色欲久久久综合网东京热 | 无码一区二区三区在线观看 | 国产明星裸体无码xxxx视频 | 成人精品天堂一区二区三区 | 精品国偷自产在线 | 久久精品人人做人人综合试看 | 无码人妻出轨黑人中文字幕 | 国产精品久久久久久久9999 | 精品久久久无码中文字幕 | 国产日产欧产精品精品app | 桃花色综合影院 | 日本乱人伦片中文三区 | 精品国产精品久久一区免费式 | 亚洲成a人片在线观看日本 | 亚洲综合精品香蕉久久网 | 日本一区二区更新不卡 | 99久久人妻精品免费一区 | 精品亚洲韩国一区二区三区 | 乱人伦人妻中文字幕无码久久网 | 中文字幕乱妇无码av在线 | 欧洲熟妇色 欧美 | 人妻体内射精一区二区三四 | 2019nv天堂香蕉在线观看 | 国产精品人人爽人人做我的可爱 | 天堂无码人妻精品一区二区三区 | 大屁股大乳丰满人妻 | 未满小14洗澡无码视频网站 | 丰满人妻被黑人猛烈进入 | 欧洲熟妇色 欧美 | 亚洲色欲色欲天天天www | 国产精品美女久久久久av爽李琼 | 国产av剧情md精品麻豆 | 性做久久久久久久免费看 | 欧洲欧美人成视频在线 | 麻豆成人精品国产免费 | 97夜夜澡人人双人人人喊 | 国产精品美女久久久久av爽李琼 | 蜜臀av在线播放 久久综合激激的五月天 | 久久久国产精品无码免费专区 | 人妻少妇精品无码专区动漫 | 中文字幕精品av一区二区五区 | 中国大陆精品视频xxxx | 国产精品亚洲一区二区三区喷水 | 久久久中文字幕日本无吗 | 成人无码影片精品久久久 | 人人妻人人澡人人爽欧美一区九九 | 国产人成高清在线视频99最全资源 | 欧美阿v高清资源不卡在线播放 | 日韩av无码中文无码电影 | 国产手机在线αⅴ片无码观看 | 性生交大片免费看女人按摩摩 | 亚洲精品久久久久avwww潮水 | 天堂а√在线中文在线 | 久久精品国产一区二区三区肥胖 | 在线成人www免费观看视频 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲精品国偷拍自产在线麻豆 | 色 综合 欧美 亚洲 国产 | 国产后入清纯学生妹 | 亚洲一区av无码专区在线观看 | 国产人妻精品午夜福利免费 | 中文字幕乱码中文乱码51精品 | 无码精品国产va在线观看dvd | 大地资源中文第3页 | 高清无码午夜福利视频 | 欧洲极品少妇 | 清纯唯美经典一区二区 | 国产性生交xxxxx无码 | 欧美日韩亚洲国产精品 | 麻花豆传媒剧国产免费mv在线 | 在线а√天堂中文官网 | 国内精品一区二区三区不卡 | 久久国产劲爆∧v内射 | 国产精品美女久久久 | 亚洲午夜无码久久 | 精品成在人线av无码免费看 | 国产成人一区二区三区在线观看 | 未满成年国产在线观看 | 丰满诱人的人妻3 | 国产精品久久久久9999小说 | 国产偷抇久久精品a片69 | 中文字幕无线码免费人妻 | 久久精品国产日本波多野结衣 | 欧美阿v高清资源不卡在线播放 | 丰满少妇弄高潮了www | 久久精品成人欧美大片 | 天堂在线观看www | 国内精品人妻无码久久久影院蜜桃 | 嫩b人妻精品一区二区三区 | 久久亚洲国产成人精品性色 | 水蜜桃色314在线观看 | 亚洲а∨天堂久久精品2021 | 日韩欧美群交p片內射中文 | 国产偷自视频区视频 | 免费人成网站视频在线观看 | 一区二区三区高清视频一 | av无码不卡在线观看免费 | 露脸叫床粗话东北少妇 | 国产人妻精品一区二区三区不卡 | 国产特级毛片aaaaaa高潮流水 | 亚洲色欲久久久综合网东京热 | 永久免费观看美女裸体的网站 | 人妻熟女一区 | 人人妻人人澡人人爽精品欧美 | 国产一区二区三区四区五区加勒比 | 色妞www精品免费视频 | 久久人人97超碰a片精品 | 亚洲精品成a人在线观看 | 国产精品亚洲一区二区三区喷水 | 在线 国产 欧美 亚洲 天堂 | 在线观看欧美一区二区三区 | 丰腴饱满的极品熟妇 | 日韩精品a片一区二区三区妖精 | 国产福利视频一区二区 | 色狠狠av一区二区三区 | 欧美人与动性行为视频 | 久久综合久久自在自线精品自 | 国产欧美亚洲精品a | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 |