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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++11 并发指南三(Lock 详解)

發布時間:2025/3/15 c/c++ 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++11 并发指南三(Lock 详解) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在 《C++11 并發指南三(std::mutex 詳解)》一文中我們主要介紹了 C++11 標準中的互斥量(Mutex),并簡單介紹了一下兩種鎖類型。本節將詳細介紹一下 C++11 標準的鎖類型。

C++11 標準為我們提供了兩種基本的鎖類型,分別如下:

  • std::lock_guard,與 Mutex RAII 相關,方便線程對互斥量上鎖。
  • std::unique_lock,與 Mutex RAII 相關,方便線程對互斥量上鎖,但提供了更好的上鎖和解鎖控制。

另外還提供了幾個與鎖類型相關的 Tag 類,分別如下:

  • std::adopt_lock_t,一個空的標記類,定義如下:
?
structadopt_lock_t {};

?該類型的常量對象adopt_lock(adopt_lock 是一個常量對象,定義如下:

?
constexpradopt_lock_t adopt_lock {};,// constexpr 是 C++11 中的新關鍵字)

通常作為參數傳入給 unique_lock 或 lock_guard 的構造函數。

  • std::defer_lock_t,一個空的標記類,定義如下:
?
structdefer_lock_t {};

?該類型的常量對象 defer_lock(defer_lock 是一個常量對象,定義如下:

?
constexprdefer_lock_t defer_lock {};,// constexpr 是 C++11 中的新關鍵字)

通常作為參數傳入給 unique_lock 或 lock_guard 的構造函數。

  • std::try_to_lock_t,一個空的標記類,定義如下:
?
structtry_to_lock_t {};

?該類型的常量對象 try_to_lock(try_to_lock 是一個常量對象,定義如下:

?
constexprtry_to_lock_t try_to_lock {};,// constexpr 是 C++11 中的新關鍵字)

通常作為參數傳入給 unique_lock 或 lock_guard 的構造函數。后面我們會詳細介紹以上三種 Tag 類型在配合 lock_gurad 與 unique_lock 使用時的區別。

std::lock_guard 介紹

std::lock_gurad 是 C++11 中定義的模板類。定義如下:

?
template<class Mutex> class lock_guard;

lock_guard 對象通常用于管理某個鎖(Lock)對象,因此與 Mutex RAII 相關,方便線程對互斥量上鎖,即在某個 lock_guard 對象的聲明周期內,它所管理的鎖對象會一直保持上鎖狀態;而 lock_guard 的生命周期結束之后,它所管理的鎖對象會被解鎖(注:類似 shared_ptr 等智能指針管理動態分配的內存資源 )。

模板參數 Mutex 代表互斥量類型,例如 std::mutex 類型,它應該是一個基本的 BasicLockable 類型,標準庫中定義幾種基本的 BasicLockable 類型,分別 std::mutex, std::recursive_mutex, std::timed_mutex,std::recursive_timed_mutex (以上四種類型均已在上一篇博客中介紹)以及 std::unique_lock(本文后續會介紹 std::unique_lock)。(注:BasicLockable 類型的對象只需滿足兩種操作,lock 和 unlock,另外還有 Lockable 類型,在 BasicLockable 類型的基礎上新增了 try_lock 操作,因此一個滿足 Lockable 的對象應支持三種操作:lock,unlock 和 try_lock;最后還有一種 TimedLockable 對象,在 Lockable 類型的基礎上又新增了 try_lock_for 和 try_lock_until 兩種操作,因此一個滿足?TimedLockable 的對象應支持五種操作:lock, unlock, try_lock, try_lock_for, try_lock_until)。

在 lock_guard 對象構造時,傳入的 Mutex 對象(即它所管理的 Mutex 對象)會被當前線程鎖住。在lock_guard 對象被析構時,它所管理的 Mutex 對象會自動解鎖,由于不需要程序員手動調用 lock 和 unlock 對 Mutex 進行上鎖和解鎖操作,因此這也是最簡單安全的上鎖和解鎖方式,尤其是在程序拋出異常后先前已被上鎖的 Mutex 對象可以正確進行解鎖操作,極大地簡化了程序員編寫與 Mutex 相關的異常處理代碼。

值得注意的是,lock_guard 對象并不負責管理 Mutex 對象的生命周期,lock_guard 對象只是簡化了 Mutex 對象的上鎖和解鎖操作,方便線程對互斥量上鎖,即在某個 lock_guard 對象的聲明周期內,它所管理的鎖對象會一直保持上鎖狀態;而 lock_guard 的生命周期結束之后,它所管理的鎖對象會被解鎖。

std::lock_guard 構造函數

lock_guard 構造函數如下表所示:

locking (1)adopting (2)copy [deleted](3)
explicit lock_guard (mutex_type& m);
lock_guard (mutex_type& m, adopt_lock_t tag);
lock_guard (const lock_guard&) = delete;
  • locking 初始化
    • lock_guard 對象管理 Mutex 對象 m,并在構造時對 m 進行上鎖(調用 m.lock())。
  • adopting初始化
    • lock_guard 對象管理 Mutex 對象 m,與 locking 初始化(1) 不同的是, Mutex 對象 m 已被當前線程鎖住。
  • 拷貝構造
    • lock_guard 對象的拷貝構造和移動構造(move construction)均被禁用,因此 lock_guard 對象不可被拷貝構造或移動構造。
  • 我們來看一個簡單的例子(參考):

    #include <iostream> // std::cout #include <thread> // std::thread #include <mutex> // std::mutex, std::lock_guard, std::adopt_lock std::mutex mtx; // mutex for critical sectionvoid print_thread_id (int id) {mtx.lock();std::lock_guard<std::mutex> lck(mtx, std::adopt_lock);std::cout << "thread #" << id << '\n'; }int main () {std::thread threads[10];// spawn 10 threads:for (int i=0; i<10; ++i)threads[i] = std::thread(print_thread_id,i+1);for (auto& th : threads) th.join();return 0; }

    在 print_thread_id 中,我們首先對 mtx 進行上鎖操作(mtx.lock();),然后用 mtx 對象構造一個 lock_guard 對象(std::lock_guard<std::mutex> lck(mtx, std::adopt_lock);),注意此時 Tag 參數為 std::adopt_lock,表明當前線程已經獲得了鎖,此后 mtx 對象的解鎖操作交由 lock_guard 對象 lck 來管理,在 lck 的生命周期結束之后,mtx 對象會自動解鎖。

    lock_guard 最大的特點就是安全易于使用,請看下面例子(參考),在異常拋出的時候通過 lock_guard 對象管理的 Mutex 可以得到正確地解鎖。

    #include <iostream> // std::cout #include <thread> // std::thread #include <mutex> // std::mutex, std::lock_guard #include <stdexcept> // std::logic_error std::mutex mtx;void print_even (int x) {if (x%2==0) std::cout << x << " is even\n";else throw (std::logic_error("not even")); }void print_thread_id (int id) {try {// using a local lock_guard to lock mtx guarantees unlocking on destruction / exception:std::lock_guard<std::mutex> lck (mtx);print_even(id);}catch (std::logic_error&) {std::cout << "[exception caught]\n";} }int main () {std::thread threads[10];// spawn 10 threads:for (int i=0; i<10; ++i)threads[i] = std::thread(print_thread_id,i+1);for (auto& th : threads) th.join();return 0; }

    std::unique_lock 介紹

    但是 lock_guard 最大的缺點也是簡單,沒有給程序員提供足夠的靈活度,因此,C++11 標準中定義了另外一個與 Mutex RAII 相關類 unique_lock,該類與 lock_guard 類相似,也很方便線程對互斥量上鎖,但它提供了更好的上鎖和解鎖控制。

    顧名思義,unique_lock 對象以獨占所有權的方式( unique owership)管理 mutex 對象的上鎖和解鎖操作,所謂獨占所有權,就是沒有其他的 unique_lock 對象同時擁有某個 mutex 對象的所有權。

    在構造(或移動(move)賦值)時,unique_lock 對象需要傳遞一個 Mutex 對象作為它的參數,新創建的 unique_lock 對象負責傳入的 Mutex 對象的上鎖和解鎖操作。

    std::unique_lock 對象也能保證在其自身析構時它所管理的 Mutex 對象能夠被正確地解鎖(即使沒有顯式地調用 unlock 函數)。因此,和 lock_guard 一樣,這也是一種簡單而又安全的上鎖和解鎖方式,尤其是在程序拋出異常后先前已被上鎖的 Mutex 對象可以正確進行解鎖操作,極大地簡化了程序員編寫與 Mutex 相關的異常處理代碼。

    值得注意的是,unique_lock 對象同樣也不負責管理 Mutex 對象的生命周期,unique_lock 對象只是簡化了 Mutex 對象的上鎖和解鎖操作,方便線程對互斥量上鎖,即在某個?unique_lock 對象的聲明周期內,它所管理的鎖對象會一直保持上鎖狀態;而?unique_lock 的生命周期結束之后,它所管理的鎖對象會被解鎖,這一點和 lock_guard 類似,但 unique_lock 給程序員提供了更多的自由,我會在下面的內容中給大家介紹 unique_lock 的用法。

    另外,與 lock_guard 一樣,模板參數 Mutex 代表互斥量類型,例如 std::mutex 類型,它應該是一個基本的 BasicLockable 類型,標準庫中定義幾種基本的 BasicLockable 類型,分別 std::mutex, std::recursive_mutex, std::timed_mutex,std::recursive_timed_mutex (以上四種類型均已在上一篇博客中介紹)以及 std::unique_lock(本文后續會介紹 std::unique_lock)。(注:BasicLockable 類型的對象只需滿足兩種操作,lock 和 unlock,另外還有 Lockable 類型,在 BasicLockable 類型的基礎上新增了 try_lock 操作,因此一個滿足 Lockable 的對象應支持三種操作:lock,unlock 和 try_lock;最后還有一種 TimedLockable 對象,在 Lockable 類型的基礎上又新增了 try_lock_for 和 try_lock_until 兩種操作,因此一個滿足?TimedLockable 的對象應支持五種操作:lock, unlock, try_lock, try_lock_for, try_lock_until)。

    std::unique_lock 構造函數

    std::unique_lock 的構造函數的數目相對來說比 std::lock_guard 多,其中一方面也是因為 std::unique_lock 更加靈活,從而在構造 std::unique_lock 對象時可以接受額外的參數。總地來說,std::unique_lock 構造函數如下:

    default (1)locking (2)try-locking (3)deferred (4)adopting (5)locking for (6)locking until (7)copy [deleted] (8)move (9)
    unique_lock() noexcept;
    explicit unique_lock(mutex_type& m);
    unique_lock(mutex_type& m, try_to_lock_t tag);
    unique_lock(mutex_type& m, defer_lock_t tag) noexcept;
    unique_lock(mutex_type& m, adopt_lock_t tag);
    template <class Rep, class Period> unique_lock(mutex_type& m, const chrono::duration<Rep,Period>& rel_time);
    template <class Clock, class Duration> unique_lock(mutex_type& m, const chrono::time_point<Clock,Duration>& abs_time);
    unique_lock(const unique_lock&) = delete;
    unique_lock(unique_lock&& x);

    下面我們來分別介紹以上各個構造函數:

    (1) 默認構造函數
    新創建的 unique_lock 對象不管理任何 Mutex 對象。
    (2) locking 初始化
    新創建的 unique_lock 對象管理 Mutex 對象 m,并嘗試調用 m.lock() 對 Mutex 對象進行上鎖,如果此時另外某個 unique_lock 對象已經管理了該 Mutex 對象 m,則當前線程將會被阻塞。
    (3) try-locking 初始化
    新創建的 unique_lock 對象管理 Mutex 對象 m,并嘗試調用 m.try_lock() 對 Mutex 對象進行上鎖,但如果上鎖不成功,并不會阻塞當前線程。
    (4) deferred 初始化
    新創建的 unique_lock 對象管理 Mutex 對象 m,但是在初始化的時候并不鎖住 Mutex 對象。 m 應該是一個沒有當前線程鎖住的 Mutex 對象。
    (5) adopting 初始化
    新創建的 unique_lock 對象管理 Mutex 對象 m, m 應該是一個已經被當前線程鎖住的 Mutex 對象。(并且當前新創建的 unique_lock 對象擁有對鎖(Lock)的所有權)。
    (6) locking 一段時間(duration)
    新創建的 unique_lock 對象管理 Mutex 對象 m,并試圖通過調用 m.try_lock_for(rel_time) 來鎖住 Mutex 對象一段時間(rel_time)。
    (7) locking 直到某個時間點(time point)
    新創建的 unique_lock 對象管理 Mutex 對象m,并試圖通過調用 m.try_lock_until(abs_time) 來在某個時間點(abs_time)之前鎖住 Mutex 對象。
    (8) 拷貝構造 [被禁用]
    unique_lock 對象不能被拷貝構造。
    (9) 移動(move)構造
    新創建的 unique_lock 對象獲得了由 x 所管理的 Mutex 對象的所有權(包括當前 Mutex 的狀態)。調用 move 構造之后, x 對象如同通過默認構造函數所創建的,就不再管理任何 Mutex 對象了。

    綜上所述,由 (2) 和 (5) 創建的 unique_lock 對象通常擁有 Mutex 對象的鎖。而通過 (1) 和 (4) 創建的則不會擁有鎖。通過 (3),(6) 和 (7) 創建的 unique_lock 對象,則在 lock 成功時獲得鎖。

    關于unique_lock 的構造函數,請看下面例子(參考):

    #include <iostream> // std::cout #include <thread> // std::thread #include <mutex> // std::mutex, std::lock, std::unique_lock// std::adopt_lock, std::defer_lock std::mutex foo,bar;void task_a () {std::lock (foo,bar); // simultaneous lock (prevents deadlock)std::unique_lock<std::mutex> lck1 (foo,std::adopt_lock);std::unique_lock<std::mutex> lck2 (bar,std::adopt_lock);std::cout << "task a\n";// (unlocked automatically on destruction of lck1 and lck2) }void task_b () {// foo.lock(); bar.lock(); // replaced by:std::unique_lock<std::mutex> lck1, lck2;lck1 = std::unique_lock<std::mutex>(bar,std::defer_lock);lck2 = std::unique_lock<std::mutex>(foo,std::defer_lock);std::lock (lck1,lck2); // simultaneous lock (prevents deadlock)std::cout << "task b\n";// (unlocked automatically on destruction of lck1 and lck2) }int main () {std::thread th1 (task_a);std::thread th2 (task_b);th1.join();th2.join();return 0; }

    std::unique_lock 移動(move assign)賦值操作

    std::unique_lock 支持移動賦值(move assignment),但是普通的賦值被禁用了,

    move (1)copy [deleted] (2)
    unique_lock& operator= (unique_lock&& x) noexcept;
    unique_lock& operator= (const unique_lock&) = delete;

    移動賦值(move assignment)之后,由 x 所管理的 Mutex 對象及其狀態將會被新的 std::unique_lock 對象取代。

    如果被賦值的對象之前已經獲得了它所管理的 Mutex 對象的鎖,則在移動賦值(move assignment)之前會調用 unlock 函數釋放它所占有的鎖。

    調用移動賦值(move assignment)之后, x 對象如同通過默認構造函數所創建的,也就不再管理任何 Mutex 對象了。請看下面例子(參考):

    #include <iostream> // std::cout #include <thread> // std::thread #include <mutex> // std::mutex, std::unique_lock std::mutex mtx; // mutex for critical sectionvoid print_fifty (char c) {std::unique_lock<std::mutex> lck; // default-constructedlck = std::unique_lock<std::mutex>(mtx); // move-assignedfor (int i=0; i<50; ++i) { std::cout << c; }std::cout << '\n'; }int main () {std::thread th1 (print_fifty,'*');std::thread th2 (print_fifty,'$');th1.join();th2.join();return 0; }

    std::unique_lock 主要成員函數

    本節我們來看看 std::unique_lock 的主要成員函數。由于 std::unique_lock 比 std::lock_guard 操作靈活,因此它提供了更多成員函數。具體分類如下:

  • 上鎖/解鎖操作:lock,try_lock,try_lock_for,try_lock_until unlock
  • 修改操作:移動賦值(move assignment)(前面已經介紹過了),交換(swap)(與另一個 std::unique_lock 對象交換它們所管理的 Mutex 對象的所有權),釋放(release)(返回指向它所管理的 Mutex 對象的指針,并釋放所有權)
  • 獲取屬性操作:owns_lock(返回當前 std::unique_lock 對象是否獲得了鎖)、operator bool()(與 owns_lock 功能相同,返回當前 std::unique_lock 對象是否獲得了鎖)、mutex(返回當前 std::unique_lock 對象所管理的 Mutex 對象的指針)。
  • std::unique_lock::lock請看下面例子(參考):

    上鎖操作,調用它所管理的 Mutex 對象的 lock 函數。如果在調用? Mutex 對象的 lock 函數時該 Mutex 對象已被另一線程鎖住,則當前線程會被阻塞,直到它獲得了鎖。

    該函數返回時,當前的 unique_lock 對象便擁有了它所管理的 Mutex 對象的鎖。如果上鎖操作失敗,則拋出 system_error 異常。

    // unique_lock::lock/unlock #include <iostream> // std::cout #include <thread> // std::thread #include <mutex> // std::mutex, std::unique_lock, std::defer_lock std::mutex mtx; // mutex for critical sectionvoid print_thread_id (int id) {std::unique_lock<std::mutex> lck (mtx,std::defer_lock);// critical section (exclusive access to std::cout signaled by locking lck):lck.lock();std::cout << "thread #" << id << '\n';lck.unlock(); }int main () {std::thread threads[10];// spawn 10 threads:for (int i=0; i<10; ++i)threads[i] = std::thread(print_thread_id,i+1);for (auto& th : threads) th.join();return 0; }

    std::unique_lock::try_lock

    上鎖操作,調用它所管理的 Mutex 對象的 try_lock 函數,如果上鎖成功,則返回 true,否則返回 false。

    請看下面例子(參考):

    #include <iostream> // std::cout #include <vector> // std::vector #include <thread> // std::thread #include <mutex> // std::mutex, std::unique_lock, std::defer_lock std::mutex mtx; // mutex for critical sectionvoid print_star () {std::unique_lock<std::mutex> lck(mtx,std::defer_lock);// print '*' if successfully locked, 'x' otherwise: if (lck.try_lock())std::cout << '*';else std::cout << 'x'; }int main () {std::vector<std::thread> threads;for (int i=0; i<500; ++i)threads.emplace_back(print_star);for (auto& x: threads) x.join();return 0; }

    std::unique_lock::try_lock_for

    上鎖操作,調用它所管理的 Mutex 對象的 try_lock_for 函數,如果上鎖成功,則返回 true,否則返回 false。

    請看下面例子(參考):

    #include <iostream> // std::cout #include <chrono> // std::chrono::milliseconds #include <thread> // std::thread #include <mutex> // std::timed_mutex, std::unique_lock, std::defer_lock std::timed_mutex mtx;void fireworks () {std::unique_lock<std::timed_mutex> lck(mtx,std::defer_lock);// waiting to get a lock: each thread prints "-" every 200ms:while (!lck.try_lock_for(std::chrono::milliseconds(200))) {std::cout << "-";}// got a lock! - wait for 1s, then this thread prints "*"std::this_thread::sleep_for(std::chrono::milliseconds(1000));std::cout << "*\n"; }int main () {std::thread threads[10];// spawn 10 threads:for (int i=0; i<10; ++i)threads[i] = std::thread(fireworks);for (auto& th : threads) th.join();return 0; }

    std::unique_lock::try_lock_until

    上鎖操作,調用它所管理的 Mutex 對象的 try_lock_for 函數,如果上鎖成功,則返回 true,否則返回 false。

    請看下面例子(參考):

    #include <iostream> // std::cout #include <chrono> // std::chrono::milliseconds #include <thread> // std::thread #include <mutex> // std::timed_mutex, std::unique_lock, std::defer_lock std::timed_mutex mtx;void fireworks () {std::unique_lock<std::timed_mutex> lck(mtx,std::defer_lock);// waiting to get a lock: each thread prints "-" every 200ms:while (!lck.try_lock_for(std::chrono::milliseconds(200))) {std::cout << "-";}// got a lock! - wait for 1s, then this thread prints "*"std::this_thread::sleep_for(std::chrono::milliseconds(1000));std::cout << "*\n"; }int main () {std::thread threads[10];// spawn 10 threads:for (int i=0; i<10; ++i)threads[i] = std::thread(fireworks);for (auto& th : threads) th.join();return 0; }

    std::unique_lock::unlock

    解鎖操作,調用它所管理的 Mutex 對象的 unlock 函數。

    請看下面例子(參考):

    #include <iostream> // std::cout #include <thread> // std::thread #include <mutex> // std::mutex, std::unique_lock, std::defer_lock std::mutex mtx; // mutex for critical sectionvoid print_thread_id (int id) {std::unique_lock<std::mutex> lck (mtx,std::defer_lock);// critical section (exclusive access to std::cout signaled by locking lck):lck.lock();std::cout << "thread #" << id << '\n';lck.unlock(); }int main () {std::thread threads[10];// spawn 10 threads:for (int i=0; i<10; ++i)threads[i] = std::thread(print_thread_id,i+1);for (auto& th : threads) th.join();return 0; }

    std::unique_lock::release

    返回指向它所管理的 Mutex 對象的指針,并釋放所有權。

    請看下面例子(參考):

    #include <iostream> // std::cout #include <vector> // std::vector #include <thread> // std::thread #include <mutex> // std::mutex, std::unique_lock std::mutex mtx; int count = 0;void print_count_and_unlock (std::mutex* p_mtx) {std::cout << "count: " << count << '\n';p_mtx->unlock(); }void task() {std::unique_lock<std::mutex> lck(mtx);++count;print_count_and_unlock(lck.release()); }int main () {std::vector<std::thread> threads;for (int i=0; i<10; ++i)threads.emplace_back(task);for (auto& x: threads) x.join();return 0; }

    std::unique_lock::owns_lock

    返回當前 std::unique_lock 對象是否獲得了鎖。

    請看下面例子(參考):

    #include <iostream> // std::cout #include <vector> // std::vector #include <thread> // std::thread #include <mutex> // std::mutex, std::unique_lock, std::try_to_lock std::mutex mtx; // mutex for critical sectionvoid print_star () {std::unique_lock<std::mutex> lck(mtx,std::try_to_lock);// print '*' if successfully locked, 'x' otherwise: if (lck.owns_lock())std::cout << '*';else std::cout << 'x'; }int main () {std::vector<std::thread> threads;for (int i=0; i<500; ++i)threads.emplace_back(print_star);for (auto& x: threads) x.join();return 0; }

    std::unique_lock::operator bool()

    與 owns_lock 功能相同,返回當前 std::unique_lock 對象是否獲得了鎖。

    請看下面例子(參考):

    #include <iostream> // std::cout #include <vector> // std::vector #include <thread> // std::thread #include <mutex> // std::mutex, std::unique_lock, std::try_to_lock std::mutex mtx; // mutex for critical sectionvoid print_star () {std::unique_lock<std::mutex> lck(mtx,std::try_to_lock);// print '*' if successfully locked, 'x' otherwise: if (lck)std::cout << '*';else std::cout << 'x'; }int main () {std::vector<std::thread> threads;for (int i=0; i<500; ++i)threads.emplace_back(print_star);for (auto& x: threads) x.join();return 0; }

    std::unique_lock::mutex

    返回當前 std::unique_lock 對象所管理的 Mutex 對象的指針。

    請看下面例子(參考):

    #include <iostream> // std::cout #include <thread> // std::thread #include <mutex> // std::mutex, std::unique_lock, std::defer_lockclass MyMutex : public std::mutex {int _id; public:MyMutex (int id) : _id(id) {}int id() {return _id;} };MyMutex mtx (101);void print_ids (int id) {std::unique_lock<MyMutex> lck (mtx);std::cout << "thread #" << id << " locked mutex " << lck.mutex()->id() << '\n'; }int main () {std::thread threads[10];// spawn 10 threads:for (int i=0; i<10; ++i)threads[i] = std::thread(print_ids,i+1);for (auto& th : threads) th.join();return 0; }

    好了,本文先介紹到這里,我們基本上介紹完了 C++11 多線程編程中兩種最基本的鎖類型,后面我會繼續更新有關 C++11 并發編程的博客,希望感興趣的同學繼續關注 ;-)

    總結

    以上是生活随笔為你收集整理的C++11 并发指南三(Lock 详解)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产精品手机在线 | 久久这里 | 国产精品成人免费精品自在线观看 | 国产成人精品久 | 中文有码在线 | 亚洲精品理论 | 国产精品自产拍 | 99激情网| 午夜在线免费观看视频 | 一区二区三区在线视频111 | 91免费在线| 欧美成人精品欧美一级乱黄 | 久久手机在线视频 | 国产视频九色蝌蚪 | 欧美aa一级 | 天天射天天艹 | 久久久久久久久久国产精品 | 国产精品亚洲视频 | 2021国产精品 | 99精品黄色片免费大全 | 久草在线免费资源站 | 成年人免费观看在线视频 | 中文字幕在线看 | 中文字幕精品一区久久久久 | 国产精品大片免费观看 | 日韩网站在线播放 | 国产专区第一页 | www国产在线 | 91丝袜美腿| 四虎国产精品永久在线国在线 | 久草在线免费播放 | 操操综合网 | 日韩高清在线不卡 | 一二区av | 999久久a精品合区久久久 | 免费av大全| 欧美一级免费黄色片 | 日韩久久精品一区二区 | 麻豆传媒在线免费看 | 亚洲影院国产 | 操操操天天操 | 中文字幕在线观看播放 | 国产人成精品一区二区三 | 97人人网| 91精品国产91久久久久 | 黄色影院在线免费观看 | 91成人小视频 | 欧美精品成人在线 | 日韩黄色大片在线观看 | 天天亚洲 | 日韩高清免费电影 | 亚洲成人家庭影院 | av大片免费在线观看 | 91九色蝌蚪国产 | 国产成人一区二区三区影院在线 | 又湿又紧又大又爽a视频国产 | 婷婷丁香色 | 久草免费电影 | 久久99中文字幕 | 视频国产区 | 久久一区二区三区日韩 | 免费看的黄色网 | 99精品视频在线观看视频 | 成人一级免费视频 | 国产亚洲免费的视频看 | 国产精品一区二区精品视频免费看 | 久久免费在线 | 美女在线观看av | 亚洲精品456在线播放乱码 | 99久久久国产免费 | 在线播放一区 | 亚洲乱亚洲乱亚洲 | 精品嫩模福利一区二区蜜臀 | 在线 高清 中文字幕 | 国产一级片在线播放 | 日韩中文字幕免费电影 | 免费性网站 | 91激情视频在线播放 | 成人av中文字幕在线观看 | 黄色三级网站 | 97精品一区二区三区 | 国内久久久久久 | 精品成人a区在线观看 | 香蕉影院在线播放 | 色婷婷99 | 黄污视频网站大全 | 玖玖玖影院 | 欧美极品少妇xbxb性爽爽视频 | 久久99电影 | 国产精品毛片一区视频播 | 最近更新中文字幕 | 激情自拍av | 日韩精品视频在线观看免费 | 最近免费观看的电影完整版 | 在线视频 一区二区 | 中文资源在线观看 | 午夜在线国产 | 婷婷五月情 | 亚洲国产成人精品电影在线观看 | 在线一二区 | 国产1区在线 | 国产精品久久久久婷婷 | 免费日韩三级 | 精品视频9999 | 国产aa免费视频 | 伊人资源站 | 亚洲成av人电影 | 97精品国产91久久久久久 | 国产精品亚洲视频 | 999日韩 | 福利片视频区 | www国产亚洲精品久久麻豆 | 亚洲综合射| 欧美性极品xxxx做受 | 中文字幕xxxx | 日日日操 | 99久久综合狠狠综合久久 | 国产精品免费视频网站 | 97色涩 | 欧美a√在线| 91九色视频在线播放 | 日本久久高清视频 | 欧美国产日韩在线视频 | 又湿又紧又大又爽a视频国产 | 夜夜躁日日躁狠狠久久av | 日韩成年视频 | 成人av免费在线观看 | 久久视频这里有久久精品视频11 | 丁香激情五月 | 黄色av电影网 | 久久免费试看 | 午夜精品久久久久久久久久久久 | 蜜桃视频在线观看一区 | 98超碰在线观看 | 日韩av图片 | 在线中文字母电影观看 | 日韩高清精品免费观看 | 97超碰.com| 国产精品一区在线观看 | 在线成人免费 | 91麻豆精品一区二区三区 | 成人wwwxxx视频 | 久久久久久久久久久久亚洲 | 日日久视频 | 亚洲成人欧美 | 色婷婷精品大在线视频 | 天天激情天天干 | 成人一级免费电影 | 欧美一级小视频 | 99久久久久免费精品国产 | av观看免费在线 | 天天在线视频色 | 亚洲视频精选 | 午夜久久久久久久 | 91精品区 | 欧美激情第一区 | 中文字幕中文字幕中文字幕 | 久久精品国产免费 | 久久久久久久久久国产精品 | 国产成人精品久久久 | 国产精品久久婷婷六月丁香 | 国产精品成人久久 | 黄网站色视频免费观看 | 国精产品999国精产 久久久久 | 特黄免费av| 伊人官网 | 日韩久久一区 | 99精品一区二区 | 国产婷婷一区二区 | 精品二区久久 | 国产91学生粉嫩喷水 | 99久久久免费视频 | 国产精品一区在线观看你懂的 | 99国内精品久久久久久久 | 久久五月天综合 | 欧美午夜性| av视屏在线播放 | 日韩美在线 | 久久国产精品久久国产精品 | 国产美女被啪进深处喷白浆视频 | 日本不卡一区二区三区在线观看 | 免费高清在线观看成人 | 久久免费99| 亚洲精品国产精品国自产 | 亚洲影音先锋 | 中文字幕日韩国产 | 久99久精品| 永久免费毛片在线观看 | 91精品国产成人观看 | 国产精品久久久久久久久久久久午 | 日韩免费b | 九九视频精品免费 | 91香蕉视频好色先生 | 99 国产精品 | 国产精品igao视频网入口 | 中文乱码视频在线观看 | 一级片黄色片网站 | 日本精品视频在线 | 中文字幕高清有码 | 国产成人精品av久久 | 欧美日韩国产综合网 | 最近免费中文字幕大全高清10 | 中文字幕久久亚洲 | 久久午夜精品影院一区 | 国产精品一区二区你懂的 | 国产精品一区二 | 91激情视频在线观看 | 国产精品日韩欧美 | 精品免费久久久久久 | 天天综合导航 | 粉嫩aⅴ一区二区三区 | 麻豆91在线看 | 91亚洲精品久久久蜜桃网站 | 国产黑丝一区二区三区 | 国际精品久久 | 久久国产手机看片 | 91精品一区二区三区久久久久久 | av大片免费在线观看 | 成人性生活大片 | 91香蕉视频| 探花视频在线观看免费版 | 毛片随便看| 日韩在线欧美在线 | 日韩性xxxx| 午夜精品久久久99热福利 | 中文字幕色网站 | 国产精品久久久久久爽爽爽 | 99久久99久久 | 欧美人zozo | 毛片1000部免费看 | 日韩视频在线观看视频 | 五月婷婷影视 | 日韩精品一区二区在线视频 | 久久国产网站 | 国产精品系列在线观看 | 五月天婷婷在线视频 | 97在线视频免费播放 | 美女黄视频免费 | 日韩在线一区二区免费 | 狠狠色狠狠色终合网 | 中文字幕在线视频一区二区 | 91九色视频 | 国产成人精品一区二区三区福利 | 国产精品美女久久久久久久 | 国产中文字幕网 | 亚洲专区免费观看 | 久久影院一区 | 色网站在线看 | 欧美成人黄色 | 亚洲成人精品久久 | 欧美疯狂性受xxxxx另类 | 国产精品片 | 久久国产日韩 | 黄色三级网站 | 久久蜜臀av| 免费看色的网站 | 久久久国产精品网站 | 91欧美在线 | 四虎在线免费观看视频 | 精品视频区 | 免费看一级黄色 | 香蕉在线视频播放网站 | 精品女同一区二区三区在线观看 | 亚洲 欧美 成人 | 黄色av电影在线 | 亚洲一区二区视频在线播放 | 日韩一级电影在线 | 欧美成人亚洲成人 | 丁香花在线视频观看免费 | 丝袜少妇在线 | 精品免费在线视频 | 日本夜夜草视频网站 | 丝袜美腿亚洲综合 | 午夜av在线电影 | 九九视频精品在线 | 五月婷婷丁香六月 | 国产午夜在线 | 久久免费久久 | 免费观看久久 | 成人免费av电影 | 少妇av片| 日本精品久久久久影院 | 久久精品视频99 | 国产福利在线免费 | 天天色天天操天天爽 | 国产亚洲精品成人av久久ww | av高清免费 | 久久精品首页 | 中文字幕精品一区二区三区电影 | 国产精品免费一区二区三区在线观看 | 在线观看亚洲免费视频 | 亚洲日韩欧美一区二区在线 | 91刺激视频 | av高清在线观看 | 日本黄色a级大片 | 日韩色视频在线观看 | 日韩欧美精品在线观看 | 久久久久久久精 | 国产精品久久久999 国产91九色视频 | 成人黄色av免费在线观看 | 人人精品 | 日韩欧美国产激情在线播放 | 国产69精品久久久久久久久久 | 激情视频一区二区 | 亚洲一区二区三区精品在线观看 | 国产精品一区二区在线免费观看 | 热久精品 | 日本韩国精品一区二区在线观看 | 成人午夜网址 | 婷婷色在线观看 | 亚洲免费永久精品国产 | 成人午夜影院在线观看 | 欧美在线观看视频免费 | 91色一区二区三区 | 成人欧美一区二区三区在线观看 | 99精品欧美一区二区三区 | 天天操天天透 | 国内外成人在线 | 欧美一二三区在线观看 | 韩国视频一区二区三区 | 在线国产片 | 免费看日韩片 | 狠狠干网站 | 毛片播放网站 | 青春草免费视频 | 国产淫片免费看 | 国产美女视频网站 | 波多野结衣一区二区三区中文字幕 | 久久久久亚洲精品成人网小说 | 精品免费国产一区二区三区四区 | 91成人免费看 | 久久艹在线 | 91精品播放| 久艹视频在线观看 | 久久精品1区2区 | 亚洲综合视频网 | 亚洲精品高清一区二区三区四区 | 久久久久久网址 | 亚洲精品国产欧美在线观看 | 久久久精品网站 | 亚洲精品乱码久久久久久 | 欧美男女爱爱视频 | 久久久久亚洲精品男人的天堂 | 国产视频一区二区在线播放 | 久久精品国产亚洲aⅴ | 国产免费中文字幕 | 99精品视频精品精品视频 | 国产拍揄自揄精品视频麻豆 | 一区二区三区在线不卡 | 精品欧美乱码久久久久久 | 96精品视频 | av免费电影网站 | 夜夜看av| 免费涩涩网站 | 日本最新高清不卡中文字幕 | 成人在线播放av | 一级电影免费在线观看 | 九九久久久久久久久激情 | 三级动态视频在线观看 | 国产精品久久久久久久妇 | 日韩在线视| 天天干天天爽 | 国产黄色片免费观看 | 97超碰在线久草超碰在线观看 | 日韩在线中文字幕 | 成人在线观看网址 | 五月婷婷av | 奇米777777 | 国产精品18久久久久久久久 | 国产精品一区二区久久久久 | 中文字幕一区二区三区在线视频 | 丝袜美女在线 | 正在播放 久久 | 手机成人在线 | 久久久99精品免费观看 | 亚洲欧美日韩国产一区二区 | sm免费xx网站 | 涩涩在线| 六月丁香婷 | 亚洲一区二区91 | 国产成人777777 | 天天干天天操天天搞 | 色天天综合久久久久综合片 | 欧美日韩视频网站 | 99视频免费在线观看 | 亚洲天堂网在线视频观看 | 天天操天天操 | 九九精品视频在线看 | 久久久久久久久精 | 成人九九视频 | 91中文字幕在线播放 | 麻豆视频免费版 | 免费在线日韩 | 日韩一区二区三区视频在线 | 欧美日韩中文字幕综合视频 | 欧美激情精品久久久 | 亚洲深爱激情 | 免费视频xnxx com | 91九色蝌蚪视频 | 欧美在线不卡一区 | 亚洲成人av一区二区 | av三级在线播放 | 久久久久综合视频 | 五月开心激情 | 亚洲黄色一级大片 | 日本在线观看一区 | 久久久91精品国产一区二区三区 | 成人午夜精品 | 玖玖在线看 | 久综合网 | 中文字幕字幕中文 | 99久久精品免费看 | 久久国产精品99久久久久久进口 | 亚洲涩涩色 | 91.dizhi永久地址最新 | 婷婷色在线资源 | 麻豆91精品视频 | 91黄色免费看 | 色婷五月天 | 久久久999精品视频 国产美女免费观看 | 国产在线观看 | 午夜999| 色 免费观看 | 免费视频黄 | 欧美精品乱码久久久久久按摩 | 久久国产品 | 久久久蜜桃一区二区 | 欧美日韩国产在线观看 | 玖玖视频免费在线 | 国产成人在线精品 | 91久久精品一区 | 欧美一级久久久久 | 欧美精品在线观看一区 | 激情网综合| av一级片网站 | 天天看天天操 | 精品久久美女 | av一区二区三区在线播放 | www.久热| av电影免费在线看 | 中文字幕久久精品 | 天天爱天天干天天爽 | 国产精品美女久久久久久2018 | 在线观看视频黄 | 人人爱爱 | 美女免费黄网站 | 成人久久18免费网站 | 天堂入口网站 | 国产区精品在线 | 午夜视频在线观看网站 | 91人人网 | 亚洲 欧美 另类人妖 | 中文字幕日韩免费视频 | 中文字幕在线看视频国产 | 亚洲精选视频免费看 | 午夜精品久久久久久久久久久久 | 色综合天天色 | 久久综合影音 | 国产99久久久欧美黑人 | 韩国一区二区在线观看 | 黄色资源在线观看 | 久久黄色片 | 日韩在线观看小视频 | 狠狠操狠狠操 | 久久99国产精品久久99 | 六月丁香久久 | 91大神免费视频 | 亚洲精品网址在线观看 | 中文字幕日韩高清 | 国产69久久久欧美一级 | 国产伦理剧 | 激情在线五月天 | 国产精品99久久免费黑人 | www.五月婷 | 久久久久久久99精品免费观看 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 黄色片视频免费 | av福利第一导航 | 国产又粗又长的视频 | 狠狠躁夜夜躁人人爽超碰91 | 久久精品三级 | 手机看片国产日韩 | 女女av在线 | 亚洲最大成人免费网站 | 98超碰在线观看 | 成人国产电影在线观看 | 国产成人精品一区二区三区在线 | 99久久精品日本一区二区免费 | 免费av网站观看 | 亚洲人片在线观看 | 在线av资源 | 97在线视频观看 | 国产亚洲成人网 | 久久色在线观看 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 欧美日韩国产精品一区二区三区 | 81国产精品久久久久久久久久 | 天天综合成人 | 欧美-第1页-屁屁影院 | 国产成人99av超碰超爽 | 69久久夜色精品国产69 | 婷婷丁香花五月天 | 亚洲精品乱码白浆高清久久久久久 | 8x成人在线| 在线成人免费电影 | 精品国产一区二区三区四区vr | 亚洲午夜大片 | 国产尤物在线观看 | 狠狠干五月天 | 久久伊99综合婷婷久久伊 | 区一区二区三区中文字幕 | 最新99热 | 精品国产伦一区二区三区观看说明 | 美女福利视频在线 | 91干干干 | 午夜美女av | 欧美一级片在线免费观看 | 久久午夜国产精品 | 91你懂的| 国产成人精品不卡 | 免费日韩视 | 中文av在线天堂 | 成人观看视频 | av黄在线播放 | 精品影院一区二区久久久 | 最近中文字幕高清字幕免费mv | 中文字幕乱码日本亚洲一区二区 | 毛片永久新网址首页 | 五月婷婷六月丁香激情 | 日本三级全黄少妇三2023 | 美女网站在线观看 | 91视频免费网站 | 91超级碰 | 色丁香综合| 插综合网 | 国产精品区在线观看 | 欧美一级片免费播放 | 91在线成人 | 一区二区三区在线影院 | 亚洲国产精选 | www.夜夜干.com| 日韩剧情 | a级国产毛片 | 成人黄色大片在线观看 | 亚洲欧洲日韩 | 在线免费观看视频一区 | 啪嗒啪嗒免费观看完整版 | 国产做a爱一级久久 | 国产一区二区三区高清播放 | 久草视频免费在线播放 | 欧美激情视频一区二区三区免费 | 欧美日韩免费看 | 丁香六月天 | 91av视频在线播放 | av黄色免费在线观看 | 五月开心激情网 | 欧美日韩国产高清视频 | 国产成人三级在线播放 | 免费在线激情电影 | 青青草华人在线视频 | 午夜久久久影院 | 亚洲理论在线 | 久久网站免费 | 久草电影在线观看 | 久草精品电影 | 国产综合片| 欧洲一区二区在线观看 | 插久久| 麻豆免费在线视频 | 丁香婷婷综合五月 | 伊甸园av在线| 中文字幕有码在线 | 亚洲一区 影院 | 久久论理| 久草在线欧美 | 在线你懂 | 久久国产精品免费视频 | 免费亚洲视频 | 开心激情综合网 | 人人dvd | 久久亚洲婷婷 | 欧美一级电影在线观看 | 日韩大片免费在线观看 | 一区二区精品国产 | 成人免费在线视频观看 | 在线看一区 | 免费色视频网站 | 免费日韩电影 | 天天艹天天| 亚洲精品一区二区18漫画 | 波多野结衣在线观看一区二区三区 | 国产成人三级三级三级97 | 黄色免费看片网站 | 在线免费视频 你懂得 | 国产精品中文字幕av | 欧美日韩国产综合网 | 在线观看的黄色 | 日本大片免费观看在线 | 狠狠干在线 | 色综合久久悠悠 | 国产精品久久久影视 | 久久免费观看视频 | 国产原创在线观看 | av网站地址 | 精品在线视频一区二区三区 | 国产精品18久久久 | 日韩av视屏在线观看 | 亚洲黄色免费电影 | 日韩精品亚洲专区在线观看 | 午夜视频免费播放 | 久久精品一 | a在线播放| 精品国产区在线 | 人人玩人人添人人澡超碰 | 成人avav| 日韩理论视频 | 久久理论电影网 | 亚洲精品免费看 | 免费成人在线观看视频 | 久久在线精品视频 | 国产精品成人久久久久久久 | 蜜臀久久99精品久久久无需会员 | 伊人五月在线 | 正在播放国产一区 | 久久精品综合视频 | 国产麻豆视频在线观看 | 天天天色综合a | 国产录像在线观看 | 亚洲欧美视频在线 | 中文字幕在线观看免费高清完整版 | 操操操操网 | av资源免费在线观看 | 99色资源| 激情xxxx | 玖玖综合网 | 国产黄a三级 | 91av电影在线 | 国产日韩欧美在线一区 | 玖操| 欧美一级爽 | 亚洲视频分类 | 在线播放日韩 | 天天狠狠 | 午夜色站| 少妇av网| 81国产精品久久久久久久久久 | 欧美日韩一区二区三区不卡 | 亚洲区精品视频 | 欧美a免费 | 在线观看a视频 | 在线观看视频黄色 | 亚洲视频高清 | 99精品欧美一区二区三区 | 天天天天综合 | 亚洲女同videos | 91在线看视频 | 亚洲国产手机在线 | 99热最新| 天天在线视频色 | 久久综合免费 | 伊甸园av在线 | 亚洲区另类春色综合小说校园片 | 园产精品久久久久久久7电影 | 国产日产在线观看 | 在线视频手机国产 | 天堂网一区 | 久久久成人精品 | 免费观看av | 天天干夜夜擦 | 91亚洲精品国偷拍自产在线观看 | 在线观看日韩中文字幕 | 久久99国产精品二区护士 | 91看片淫黄大片在线播放 | 狠狠狠狠狠狠 | 久草网在线观看 | 国产精品 亚洲精品 | 婷婷国产精品 | 九九九热精品免费视频观看网站 | 欧美在线观看视频一区二区三区 | 久久久久久久久久久免费av | 欧美日韩国产综合网 | 久久在线精品 | 91精品国产三级a在线观看 | 免费福利视频导航 | 免费人做人爱www的视 | 免费国产一区二区 | 亚洲一区不卡视频 | 人人看人人做人人澡 | 97免费在线视频 | japanesexxxhd奶水 91在线精品一区二区 | 免费看成人片 | aⅴ精品av导航 | 国产小视频你懂的 | 久久综合久久综合久久综合 | 在线a人v观看视频 | 天天爱天天操天天射 | 国产日产精品一区二区三区四区 | 国产视频高清 | 国产成人av免费在线观看 | 五月激情六月丁香 | 综合精品久久久 | 91精品国产综合久久婷婷香蕉 | 久草a在线| 国产亚洲午夜高清国产拍精品 | 亚洲国产黄色片 | 精品视频免费播放 | 中文字幕 国产视频 | 久久免费的视频 | 久久成人高清视频 | 国产在线永久 | 欧美日韩三级 | 日韩高清免费电影 | 国产精品九九九 | 成年人免费av网站 | 欧美最猛性xxxxx免费 | 婷婷激情在线 | 毛片随便看 | 色婷婷综合激情 | 欧美综合久久 | 天天操夜夜做 | 天天躁日日躁狠狠躁 | 一区二区视频在线免费观看 | 在线免费成人 | 在线观看国产高清视频 | 欧美黄色免费 | 国内视频一区二区 | 亚洲精品日韩在线观看 | 久久国产欧美日韩 | 欧美性色综合网 | 国产精品手机在线观看 | 99热最新地址 | 婷婷中文字幕在线观看 | 亚洲一区动漫 | 亚洲国产精品成人女人久久 | 91麻豆精品国产91久久久更新时间 | 激情丁香5月 | 亚洲精品乱码久久久久久蜜桃不爽 | 婷婷精品视频 | 精品99999| 深爱激情av | 成年人国产视频 | 四虎影视久久久 | 欧美日韩中文国产一区发布 | 97综合网 | 五月婷婷视频在线观看 | 波多野结衣电影久久 | 国产伦理久久 | 色小说av| 日韩中文在线播放 | 狠狠色伊人亚洲综合网站野外 | 99久久精品免费看国产免费软件 | 欧美日韩午夜爽爽 | 日色在线视频 | 国产香蕉视频在线观看 | 国产一区二区三区四区大秀 | 狠狠操天天操 | 中文字幕视频在线播放 | 日韩影片在线观看 | 天天操天天玩 | 国产精品一区免费看8c0m | 最近更新中文字幕 | 很黄很黄的网站免费的 | 国内免费久久久久久久久久久 | 日韩专区 在线 | 色狠狠久久av五月综合 | 激情视频区 | 欧美高清成人 | 92国产精品久久久久首页 | 亚洲国产wwwccc36天堂 | 日韩有码欧美 | 日韩精品在线观看av | 欧美精品久久久久性色 | 999久久久久久久久久久 | 麻豆视频在线播放 | 欧美精品午夜 | 色88久久| 日韩综合视频在线观看 | 国产一二区在线观看 | 国产免费久久 | 偷拍视频一区 | 中文字幕av在线免费 | 国产精品成人免费精品自在线观看 | 国产 欧美 在线 | 菠萝菠萝在线精品视频 | 久久99网站| 中文字幕人成不卡一区 | 天天综合网久久综合网 | 麻豆91精品91久久久 | 成年人视频在线免费观看 | 亚洲乱码在线观看 | 久久久精品亚洲 | 色香com.| 国产精品永久久久久久久www | 黄色一级大片在线观看 | 超碰人人av | 韩国一区在线 | 精品国产aⅴ麻豆 | 福利一区在线 | 欧美一区三区四区 | 九九视频精品免费 | 中文十次啦 | 亚洲成av人影院 | 国产午夜三级 | 国产精品久久久久久av | 国产日产精品一区二区三区四区 | 国产剧情在线一区 | 国产香蕉在线 | 色婷婷激情网 | 国产一级精品绿帽视频 | 97超碰人人网 | 91视频免费看 | 日韩中文幕| 国产呻吟在线 | 91av蜜桃 | 亚洲精品在线视频 | 亚洲狠狠丁香婷婷综合久久久 | 激情av网址| 日操操 | 婷婷成人亚洲综合国产xv88 | 婷婷久久丁香 | 国产理伦在线 | 欧美一区日韩精品 | 欧美91成人网 | 色综合天天爱 | 久久免费精品 | 国产精品美女久久久久久久 | 天天射天天操天天色 | 国产亚洲精品成人av久久ww | 在线黄色免费av | 在线观看国产www | 久久99欧美 | 婷婷亚洲五月 | 日韩国产欧美在线播放 | 麻豆成人网 | 国产高清一区二区 | 久久人操 | 亚洲另类交 | 精品96久久久久久中文字幕无 | 亚洲伦理一区 | 人人草在线观看 | 成人av午夜 | 亚洲精品毛片一级91精品 | 成年人免费看av | 亚洲一级黄色av | 国内外成人在线视频 | 99色视频在线 | 国产人免费人成免费视频 | 国产日产精品一区二区三区四区 | 国产不卡精品 | 日韩一区二区三区在线看 | 久久五月精品 | 精品国产大片 | www色| 亚洲五月激情 | 99热九九这里只有精品10 | 久久久久国产一区二区 | 国产精品久久99 | 久草在线99 | 精品国产一区二区三区男人吃奶 | 波多野结衣电影一区二区 | 日本性生活免费看 | 国产福利网站 | 少妇bbr搡bbb搡bbb | 久久激情视频 久久 | 国产高清一 | 国产免费资源 | 99视频一区二区 | 狠狠操欧美 | 一本一本久久a久久精品牛牛影视 | 日韩二区在线观看 | 国产精品一区二区免费 | 国产h在线观看 | 色婷婷影视 | 在线观看香蕉视频 | 色97在线| 国产99久久九九精品免费 | 97成人免费 | 成人精品影视 | 一区二区三区高清在线 | 精品久久久久亚洲 | 午夜精品一区二区三区可下载 | 久久久国产精品网站 | 亚洲天天做 | 国产成人精品一区二三区 | 日韩成人精品一区二区 | 亚洲自拍偷拍色图 | 91av美女| 永久免费的av电影 | 久久久国产精品久久久 | 日本特黄一级片 | 成人黄色视 | 久久久这里有精品 | 欧美精品在线视频 | 人人澡超碰碰 | 久久最新 | 色久五月 | 91视频在线免费看 | 国产男女无遮挡猛进猛出在线观看 | 久久久免费少妇 | 国产高清 不卡 | 玖玖视频| www.玖玖玖| 精品国产乱码一区二区三区在线 | 亚洲精品久久视频 | 婷婷六月综合亚洲 | 97超级碰碰碰碰久久久久 | 九九热在线观看视频 | 亚洲一区网 | 日韩av片免费在线观看 | 狠狠躁18三区二区一区ai明星 | 丝袜美腿在线播放 | 国产小视频福利在线 | 91伊人久久大香线蕉蜜芽人口 | www黄色com| 国产精品久久久久9999吃药 | 激情欧美一区二区三区免费看 | 99在线精品视频观看 | 中国黄色一级大片 | 国产精品热视频 | 99亚洲精品在线 | 亚洲精品玖玖玖av在线看 | 人人爽人人乐 | 国产精品激情偷乱一区二区∴ | 久草在线视频资源 | 久久久久久久久久久网 | 国产亚洲精品成人 | 久久免费在线观看 | 青草视频免费观看 | 色婷婷免费视频 | 亚洲精品久久久久久久蜜桃 | 久久久久久久久久久久久久免费看 | 精品国产乱码久久久久久1区2匹 | 日一日干一干 | 最近2019好看的中文字幕免费 | 日日天天av | 99热只有精品在线观看 | 久久综合视频网 | 激情丁香久久 | 一区二区三区在线视频111 | 国产一级免费在线观看 | 在线亚洲日本 | 精品国产视频在线观看 | 最近中文字幕视频网 | 国产视频1区2区 | 日日天天干 | 成人av动漫在线 | av日韩在线网站 | 亚洲天天在线 | 久久久久久免费网 | 五月综合激情网 | 四虎影视4hu4虎成人 | 国产一区二区不卡视频 | 国产在线观看一 | 91精品办公室少妇高潮对白 | 久久99精品久久久久久三级 | 日本中文字幕一二区观 | 中国一级片在线播放 | 99se视频在线观看 | 精品国产精品国产偷麻豆 | 蜜桃av久久久亚洲精品 | 天天干 天天摸 天天操 | 日韩经典一区二区三区 | 国产九色在线播放九色 | 久久国产综合视频 | 夜夜躁日日躁 | 91在线精品一区二区 | 国产成人777777 | 成人啪啪18免费游戏链接 | avav片| 综合国产视频 | 激情综合婷婷 | 国产中文字幕免费 | 激情五月婷婷网 | www狠狠操 | 97免费在线观看视频 | 亚洲欧美成人在线 | 在线观看av黄色 | 中文字幕在线日亚洲9 | 亚洲欧美婷婷六月色综合 | 91久久在线观看 | 在线免费精品视频 | 国产免费影院 | 久久久精品久久 | 亚洲激情久久 | 精品欧美一区二区精品久久 | 人人爱人人爽 | 久久99偷拍视频 | 国产日韩三级 | 永久免费精品视频 | 在线观看av小说 | 亚洲国产精品视频在线观看 | 成年人在线播放视频 | 国产精品精品国产婷婷这里av | 九九久 | 久久激情视频网 | 97超碰人人网 | 亚洲国产欧美在线看片xxoo | 91精品国产99久久久久久久 |