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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

c++ sleep函数_Linux 多线程应用中如何编写安全的信号处理函数

發(fā)布時間:2023/12/20 linux 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ sleep函数_Linux 多线程应用中如何编写安全的信号处理函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于代碼的可重入性,設計開發(fā)人員一般只考慮到線程安全,異步信號處理函數的安全卻往往被忽略。本文首先介紹如何編寫安全的異步信號處理函數;然后舉例說明在多線程應用中如何構建模型讓異步信號在指定的線程中以同步的方式處理。

Linux 多線程應用中編寫安全的信號處理函數

在開發(fā)多線程應用時,開發(fā)人員一般都會考慮線程安全,會使用 pthread_mutex 去保護全局變量。如果應用中使用了信號,而且信號的產生不是因為程序運行出錯,而是程序邏輯需要,譬如 SIGUSR1、SIGRTMIN 等,信號在被處理后應用程序還將正常運行。在編寫這類信號處理函數時,應用層面的開發(fā)人員卻往往忽略了信號處理函數執(zhí)行的上下文背景,沒有考慮編寫安全的信號處理函數的一些規(guī)則。本文首先介紹編寫信號處理函數時需要考慮的一些規(guī)則;然后舉例說明在多線程應用中如何構建模型讓因為程序邏輯需要而產生的異步信號在指定的線程中以同步的方式處理。

線程和信號

Linux 多線程應用中,每個線程可以通過調用 pthread_sigmask() 設置本線程的信號掩碼。一般情況下,被阻塞的信號將不能中斷此線程的執(zhí)行,除非此信號的產生是因為程序運行出錯如 SIGSEGV;另外不能被忽略處理的信號 SIGKILL 和 SIGSTOP 也無法被阻塞。

當一個線程調用 pthread_create() 創(chuàng)建新的線程時,此線程的信號掩碼會被新創(chuàng)建的線程繼承。

POSIX.1 標準定義了一系列線程函數的接口,即 POSIX threads(Pthreads)。Linux C 庫提供了兩種關于線程的實現:LinuxThreads 和 NPTL(Native POSIX Threads Library)。LinuxThreads 已經過時,一些函數的實現不遵循POSIX.1 規(guī)范。NPTL 依賴 Linux 2.6 內核,更加遵循 POSIX..1 規(guī)范,但也不是完全遵循。

基于 NPTL 的線程庫,多線程應用中的每個線程有自己獨特的線程 ID,并共享同一個進程ID。應用程序可以通過調用kill(getpid(),signo) 將信號發(fā)送到進程,如果進程中當前正在執(zhí)行的線程沒有阻礙此信號,則會被中斷,線號處理函數會在此線程的上下文背景中執(zhí)行。應用程序也可以通過調用 pthread_kill(pthread_t thread, int sig)將信號發(fā)送給指定的線程,則線號處理函數會在此指定線程的上下文背景中執(zhí)行。

基于 LinuxThreads 的線程庫,多線程應用中的每個線程擁有自己獨特的進程 ID,getpid() 在不同的線程中調用會返回不同的值,所以無法通過調用 kill(getpid(),signo)將信號發(fā)送到整個進程。

下文介紹的在指定的線程中以同步的方式處理異步信號是基于使用了 NPTL 的 Linux C 庫。請參考“Linux 線程模型的比較:LinuxThreads 和 NPTL”和“pthreads(7) - Linux man page”進一步了解 Linux 的線程模型,以及不同版本的 Linux C 庫對 NPTL 的支持。

編寫安全的異步信號處理函數

信號的產生可以是:

  • 用戶從控制終端終止程序運行,如 Ctrk + C 產生 SIGINT;
  • 程序運行出錯時由硬件產生信號,如訪問非法地址產生 SIGSEGV;
  • 程序運行邏輯需要,如調用 kill、raise 產生信號。

因為信號是異步事件,即信號處理函數執(zhí)行的上下文背景是不確定的,譬如一個線程在調用某個庫函數時可能會被信號中斷,庫函數提前出錯返回,轉而去執(zhí)行信號處理函數。對于上述第三種信號的產生,信號在產生、處理后,應用程序不會終止,還是會繼續(xù)正常運行,在編寫此類信號處理函數時尤其需要小心,以免破壞應用程序的正常運行。關于編寫安全的信號處理函數主要有以下一些規(guī)則:

  • 信號處理函數盡量只執(zhí)行簡單的操作,譬如只是設置一個外部變量,其它復雜的操作留在信號處理函數之外執(zhí)行;
  • errno 是線程安全,即每個線程有自己的 errno,但不是異步信號安全。如果信號處理函數比較復雜,且調用了可能會改變 errno 值的庫函數,必須考慮在信號處理函數開始時保存、結束的時候恢復被中斷線程的 errno 值;
  • 信號處理函數只能調用可以重入的 C 庫函數;譬如不能調用 malloc(),free()以及標準 I/O 庫函數等;
  • 信號處理函數如果需要訪問全局變量,在定義此全局變量時須將其聲明為 volatile,以避免編譯器不恰當的優(yōu)化。

從整個 Linux 應用的角度出發(fā),因為應用中使用了異步信號,程序中一些庫函數在調用時可能被異步信號中斷,此時必須根據errno 的值考慮這些庫函數調用被信號中斷后的出錯恢復處理,譬如socket 編程中的讀操作:

rlen = recv(sock_fd, buf, len, MSG_WAITALL); if ((rlen == -1) && (errno == EINTR)){// this kind of error is recoverable, we can set the offset change //‘rlen’ as 0 and continue to recv}

注:需要C/C++ Linux服務器開發(fā)學習資料加qun獲取(資料包括C/C++,Linux,golang技術,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協(xié)程,DPDK等),免費分享

在指定的線程中以同步的方式處理異步信號

如上文所述,不僅編寫安全的異步信號處理函數本身有很多的規(guī)則束縛;應用中其它地方在調用可被信號中斷的庫函數時還需考慮被中斷后的出錯恢復處理。這讓程序的編寫變得復雜,幸運的是,POSIX.1 規(guī)范定義了sigwait()、 sigwaitinfo()和 pthread_sigmask() 等接口,可以實現:

  • 以同步的方式處理異步信號;
  • 在指定的線程中處理信號。

這種在指定的線程中以同步方式處理信號的模型可以避免因為處理異步信號而給程序運行帶來的不確定性和潛在危險。

sigwait

sigwait() 提供了一種等待信號的到來,以串行的方式從信號隊列中取出信號進行處理的機制。sigwait()只等待函數參數中指定的信號集,即如果新產生的信號不在指定的信號集內,則 sigwait()繼續(xù)等待。對于一個穩(wěn)定可靠的程序,我們一般會有一些疑問:

  • 多個相同的信號可不可以在信號隊列中排隊?
  • 如果信號隊列中有多個信號在等待,在信號處理時有沒有優(yōu)先級規(guī)則?
  • 實時信號和非實時信號在處理時有沒有什么區(qū)別?

用一小段測試程序來測試 sigwait 在信號處理時的一些規(guī)則。

清單1、sigwait_test.c

#include <signal.h> #include <errno.h> #include <pthread.h> #include <unistd.h> #include <sys/types.h>void sig_handler(int signum) {printf("Receive signal. %dn", signum); }void* sigmgr_thread() {sigset_t waitset, oset;int sig;int rc;pthread_t ppid = pthread_self();pthread_detach(ppid);sigemptyset(&waitset);sigaddset(&waitset, SIGRTMIN);sigaddset(&waitset, SIGRTMIN+2);sigaddset(&waitset, SIGRTMAX);sigaddset(&waitset, SIGUSR1);sigaddset(&waitset, SIGUSR2);while (1) {rc = sigwait(&waitset, &sig);if (rc != -1) {sig_handler(sig);} else {printf("sigwaitinfo() returned err: %d; %sn", errno, strerror(errno));}} }int main() {sigset_t bset, oset;int i;pid_t pid = getpid();pthread_t ppid;sigemptyset(&bset);sigaddset(&bset, SIGRTMIN);sigaddset(&bset, SIGRTMIN+2);sigaddset(&bset, SIGRTMAX);sigaddset(&bset, SIGUSR1);sigaddset(&bset, SIGUSR2);if (pthread_sigmask(SIG_BLOCK, &bset, &oset) != 0)printf("!! Set pthread mask failedn");kill(pid, SIGRTMAX);kill(pid, SIGRTMAX);kill(pid, SIGRTMIN+2);kill(pid, SIGRTMIN);kill(pid, SIGRTMIN+2);kill(pid, SIGRTMIN);kill(pid, SIGUSR2);kill(pid, SIGUSR2);kill(pid, SIGUSR1); kill(pid, SIGUSR1);// Create the dedicated thread sigmgr_thread() which will handle signals synchronouslypthread_create(&ppid, NULL, sigmgr_thread, NULL);sleep(10);exit (0); }

程序編譯運行在 RHEL4 的結果如下:

圖 1. sigwait 測試程序執(zhí)行結果

從以上測試程序發(fā)現以下規(guī)則:

  • 對于非實時信號,相同信號不能在信號隊列中排隊;對于實時信號,相同信號可以在信號隊列中排隊。
  • 如果信號隊列中有多個實時以及非實時信號排隊,實時信號并不會先于非實時信號被取出,信號數字小的會先被取出:如 SIGUSR1(10)會先于 SIGUSR2 (12),SIGRTMIN(34)會先于 SIGRTMAX (64), 非實時信號因為其信號數字小而先于實時信號被取出。

sigwaitinfo() 以及 sigtimedwait() 也提供了與 sigwait()函數相似的功能。

Linux 多線程應用中的信號處理模型

在基于 Linux 的多線程應用中,對于因為程序邏輯需要而產生的信號,可考慮調用 sigwait()使用同步模型進行處理。其程序流程如下:

  • 主線程設置信號掩碼,阻礙希望同步處理的信號;主線程的信號掩碼會被其創(chuàng)建的線程繼承;
  • 主線程創(chuàng)建信號處理線程;信號處理線程將希望同步處理的信號集設為 sigwait()的第一個參數。
  • 主線程創(chuàng)建工作線程。
  • 圖 2. 在指定的線程中以同步方式處理異步信號的模型

    代碼示例

    以下為一個完整的在指定的線程中以同步的方式處理異步信號的程序。

    主線程設置信號掩碼阻礙 SIGUSR1 和 SIGRTMIN 兩個信號,然后創(chuàng)建信號處理線程sigmgr_thread()和五個工作線程worker_thread()。主線程每隔10秒調用kill() 對本進程發(fā)送 SIGUSR1 和 SIGTRMIN 信號。信號處理線程 sigmgr_thread()在接收到信號時會調用信號處理函數 sig_handler()。

    程序編譯:gcc -o signal_sync signal_sync.c -lpthread

    程序執(zhí)行:./signal_sync

    從程序執(zhí)行輸出結果可以看到主線程發(fā)出的所有信號都被指定的信號處理線程接收到,并以同步的方式處理。

    清單2. signal_sync.c

    #include <signal.h> #include <errno.h> #include <pthread.h> #include <unistd.h> #include <sys/types.h>void sig_handler(int signum) {static int j = 0;static int k = 0;pthread_t sig_ppid = pthread_self(); // used to show which thread the signal is handled in.if (signum == SIGUSR1) {printf("thread %d, receive SIGUSR1 No. %dn", sig_ppid, j);j++;//SIGRTMIN should not be considered constants from userland, //there is compile error when use switch case} else if (signum == SIGRTMIN) {printf("thread %d, receive SIGRTMIN No. %dn", sig_ppid, k);k++;} }void* worker_thread() {pthread_t ppid = pthread_self();pthread_detach(ppid);while (1) {printf("I'm thread %d, I'm aliven", ppid);sleep(10);} }void* sigmgr_thread() {sigset_t waitset, oset;siginfo_t info;int rc;pthread_t ppid = pthread_self();pthread_detach(ppid);sigemptyset(&waitset);sigaddset(&waitset, SIGRTMIN);sigaddset(&waitset, SIGUSR1);while (1) {rc = sigwaitinfo(&waitset, &info);if (rc != -1) {printf("sigwaitinfo() fetch the signal - %dn", rc);sig_handler(info.si_signo);} else {printf("sigwaitinfo() returned err: %d; %sn", errno, strerror(errno));}} }int main() {sigset_t bset, oset;int i;pid_t pid = getpid();pthread_t ppid;// Block SIGRTMIN and SIGUSR1 which will be handled in //dedicated thread sigmgr_thread()// Newly created threads will inherit the pthread mask from its creator sigemptyset(&bset);sigaddset(&bset, SIGRTMIN);sigaddset(&bset, SIGUSR1);if (pthread_sigmask(SIG_BLOCK, &bset, &oset) != 0)printf("!! Set pthread mask failedn");// Create the dedicated thread sigmgr_thread() which will handle // SIGUSR1 and SIGRTMIN synchronouslypthread_create(&ppid, NULL, sigmgr_thread, NULL);// Create 5 worker threads, which will inherit the thread mask of// the creator main threadfor (i = 0; i < 5; i++) {pthread_create(&ppid, NULL, worker_thread, NULL);}// send out 50 SIGUSR1 and SIGRTMIN signalsfor (i = 0; i < 50; i++) {kill(pid, SIGUSR1);printf("main thread, send SIGUSR1 No. %dn", i);kill(pid, SIGRTMIN);printf("main thread, send SIGRTMIN No. %dn", i);sleep(10);}exit (0); }

    注意事項

    在基于 Linux 的多線程應用中,對于因為程序邏輯需要而產生的信號,可考慮使用同步模型進行處理;而對會導致程序運行終止的信號如 SIGSEGV 等,必須按照傳統(tǒng)的異步方式使用signal()、 sigaction()注冊信號處理函數進行處理。這兩種信號處理模型可根據所處理的信號的不同同時存在一個 Linux 應用中:

    • 不要在線程的信號掩碼中阻塞不能被忽略處理的兩個信號 SIGSTOP 和 SIGKILL。
    • 不要在線程的信號掩碼中阻塞 SIGFPE、SIGILL、SIGSEGV、SIGBUS。
    • 確保 sigwait() 等待的信號集已經被進程中所有的線程阻塞。
    • 在主線程或其它工作線程產生信號時,必須調用 kill() 將信號發(fā)給整個進程,而不能使用 pthread_kill()發(fā)送某個特定的工作線程,否則信號處理線程無法接收到此信號。
    • 因為 sigwait()使用了串行的方式處理信號的到來,為避免信號的處理存在滯后,或是非實時信號被丟失的情況,處理每個信號的代碼應盡量簡潔、快速,避免調用會產生阻塞的庫函數。

    小結

    在開發(fā) Linux 多線程應用中, 如果因為程序邏輯需要引入信號, 在信號處理后程序仍將繼續(xù)正常運行。在這種背景下,如果以異步方式處理信號,在編寫信號處理函數一定要考慮異步信號處理函數的安全; 同時, 程序中一些庫函數可能會被信號中斷,錯誤返回,這時需要考慮對 EINTR 的處理。另一方面,也可考慮使用上文介紹的同步模型處理信號,簡化信號處理函數的編寫,避免因為信號處理函數執(zhí)行上下文的不確定性而帶來的風險。

    總結

    以上是生活随笔為你收集整理的c++ sleep函数_Linux 多线程应用中如何编写安全的信号处理函数的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产一区二区久久精品 | 久久热亚洲 | 欧美一区二区日韩一区二区 | 中文字幕在线观看完整 | 狠狠狠色丁香婷婷综合激情 | 自拍超碰在线 | 国产理论影院 | 亚洲成 人精品 | 亚洲国产片 | 日日夜夜操av | 99国产精品一区 | 国产拍揄自揄精品视频麻豆 | 国产精品99精品 | 日韩午夜在线观看 | 男女免费视频观看 | 日韩三级视频在线看 | 在线观看色网 | 成年人网站免费观看 | 欧美日韩视频在线 | 色视频成人在线观看免 | 欧美一级日韩三级 | 玖玖视频免费在线 | 免费人成网ww44kk44 | 人人草人人做 | 国内视频在线观看 | 日本乱视频 | 99久久精品免费看国产免费软件 | 成年人免费看的视频 | 国产午夜一区二区 | 超碰午夜| 亚洲四虎 | 免费色黄 | 4438全国亚洲精品在线观看视频 | 绯色av一区| 日韩一区正在播放 | 色在线高清 | 亚洲欧美视频在线观看 | 成人香蕉视频 | 五月天激情综合网 | 久久一区二区三区国产精品 | 国产人成精品一区二区三 | 亚洲黄色免费网站 | 精品国内自产拍在线观看视频 | 婷婷av综合| 久热av| 亚洲成aⅴ人片久久青草影院 | 亚洲黄色精品 | 在线观看欧美成人 | 日韩区视频 | av在线影视| 久久精彩视频 | 亚洲综合成人婷婷小说 | 久久人人97超碰国产公开结果 | 欧洲一区二区在线观看 | 在线成人免费电影 | 精品国内自产拍在线观看视频 | 国产成人在线网站 | 高清免费av在线 | 九九99视频| 久久精品免视看 | 久久综合色一综合色88 | 美女久久视频 | 成人免费视频视频在线观看 免费 | 国产精品电影一区二区 | 97在线影院| 中文字幕人成不卡一区 | 2018好看的中文在线观看 | 五月婷香蕉久色在线看 | 综合色站导航 | 亚洲精品国精品久久99热一 | 一级黄色片在线 | 日韩在线观看第一页 | av电影在线播放 | 久久久天堂 | 国产色中涩| 91综合视频在线观看 | 欧美另类交人妖 | 成人黄色av免费在线观看 | 色婷婷久久一区二区 | 中文字幕4 | 国产美女精品 | 91成人免费在线 | 91视频免费视频 | 欧美日韩高清在线一区 | 在线观影网站 | aaa日本高清在线播放免费观看 | 成人免费在线视频 | 欧美日韩国产一区二区三区 | 久久国产精品二国产精品中国洋人 | av中文电影| 在线成人一区二区 | 国产成人免费观看久久久 | 欧美久久久久久久久 | 天天人人综合 | 欧美日韩在线观看一区二区 | 97在线观看免费观看 | 久久成年人| 啪啪凸凸| 国内精品99 | aaa黄色毛片 | 在线视频a | 一级a性色生活片久久毛片波多野 | 日韩一区二区三区不卡 | 欧美在线aaa | av片一区| 999在线观看视频 | 久久精品黄色 | 91精品啪在线观看国产线免费 | 在线亚洲欧美日韩 | 亚洲国产经典视频 | 亚洲人成在线观看 | 午夜少妇av | 久久久男人的天堂 | 一区二区三区四区免费视频 | 久久久久女人精品毛片九一 | 狠狠干在线 | 中文字幕电影高清在线观看 | 日韩在线免费 | 成人av免费在线观看 | 免费精品视频 | 日韩网站在线免费观看 | 精品视频免费在线 | 欧美精品一区二区免费 | 日韩av黄 | 国产成人精品亚洲日本在线观看 | 在线观看中文字幕视频 | 麻豆观看| 中文字幕高清av | 中国精品少妇 | 久久久久久在线观看 | 在线观看亚洲国产精品 | 五月天婷婷在线视频 | 9在线观看免费高清完整版在线观看明 | 国产在线观看国语版免费 | 天天激情综合 | 国产美女免费观看 | 99视频精品全部免费 在线 | 美女国内精品自产拍在线播放 | 亚洲不卡在线 | 国产欧美在线一区 | 精品嫩模福利一区二区蜜臀 | 国产精品美女 | 成人国产精品av | 天天操天天射天天操 | 少妇高潮流白浆在线观看 | 久久久国产一区二区三区四区小说 | 日韩久久久久久 | 高清av中文在线字幕观看1 | 亚洲国产精品久久 | 欧美日韩高清不卡 | 99视频免费观看 | 97视频在线观看播放 | 国产人成免费视频 | 中文字幕免费一区二区 | 精品一区欧美 | 激情网站免费观看 | 亚洲国产精品久久久久久 | 天天操天天操天天操天天操天天操 | 日韩av一区二区在线播放 | 国产亚洲一区二区在线观看 | 亚洲精品美女久久久久网站 | 免费人成在线观看 | 天天玩天天操天天射 | 一区二区精品在线观看 | 国产xxxx做受性欧美88 | 色综合中文字幕 | 91尤物在线播放 | 五月天综合激情网 | 色噜噜噜| 九九九热视频 | 精品国产一区二区三区久久 | 最近免费观看的电影完整版 | 日韩欧美在线影院 | 精品久久久久久久久久久久久久久久久久 | 一区二区三区av在线 | 久久精品美女视频网站 | 成人av电影免费在线观看 | 精品欧美小视频在线观看 | 国产精品久久久久久久久久久久午 | 久保带人 | 97精品国产97久久久久久久久久久久 | 久久久免费视频播放 | 麻豆91精品91久久久 | 日韩精品在线免费播放 | 婷婷成人亚洲综合国产xv88 | 乱子伦av | 丁香花在线视频观看免费 | 国产成人免费观看久久久 | 在线观看av不卡 | 四川bbb搡bbb爽爽视频 | 成年美女黄网站色大片免费看 | 毛片888 | 青青草在久久免费久久免费 | av免费看在线 | 久久久久久久久久电影 | 国产视频欧美视频 | 国产在线精品一区二区 | 欧美视频网址 | 国产精品久久久久一区二区 | 亚洲砖区区免费 | 九九视频在线 | 午夜视频免费在线观看 | 亚洲精品视频在线播放 | 日韩 在线 | 婷婷精品国产一区二区三区日韩 | 亚洲91在线 | 日本精品免费看 | 麻豆久久| 岛国av在线 | 国产一区欧美一区 | 国产国产人免费人成免费视频 | 日韩高清成人 | 美女网站黄在线观看 | 日本aaa在线观看 | 免费看搞黄视频网站 | 91在线视频免费91 | 久久精精品 | 99re6热在线精品视频 | 99久久精品免费看国产 | 一二三区在线 | 欧美日韩久久久 | 国产 欧美 日本 | 久久艹在线观看 | 日本三级久久 | 五月的婷婷 | 国产精品嫩草69影院 | 99爱这里只有精品 | 首页av在线 | 国产精品免费视频久久久 | 日日日日 | 色a综合| 成人免费视频视频在线观看 免费 | 狠狠色噜噜狠狠狠合久 | 999国产在线 | 激情综合网色播五月 | 国产高清视频 | 免费午夜视频在线观看 | 久久av高清| 日韩在线不卡 | 国产亚洲aⅴaaaaaa毛片 | www日韩欧美| 国产成人精品av | 在线免费观看视频a | 亚洲午夜久久久久久久久电影网 | 国产欧美精品xxxx另类 | 不卡的av在线播放 | 九九视频网站 | 国产精品久久久久久欧美 | 国产一区二区三区在线 | 黄色免费网 | 一区二区三区四区在线 | 欧美日韩国产综合一区二区 | 久热免费在线观看 | 黄色网www| 日韩欧美一区二区三区视频 | 婷婷黄色片| 国产资源网| 美女久久久久久久久久久 | 91禁在线看 | 国产无套视频 | 麻豆视频在线 | 成人亚洲网 | 超碰免费成人 | 在线免费观看黄 | www91在线观看 | 天海冀一区二区三区 | 美女网站在线看 | 一级α片免费看 | 狠狠做深爱婷婷综合一区 | 美女在线免费观看视频 | av成人免费在线看 | 激情婷婷欧美 | 毛片永久新网址首页 | 亚洲波多野结衣 | 色综合久久久久久中文网 | 久久一及片 | 亚洲免费成人av电影 | 国产黄色精品在线 | 亚洲欧美视频在线观看 | 色网站黄 | 久久久精品欧美一区二区免费 | 精品在线观看一区二区三区 | 日韩欧美一区二区三区在线观看 | 91福利视频免费 | 日韩在线一二三区 | 成人小视频在线播放 | 91免费观看视频网站 | 激情丁香久久 | 五月婷婷在线视频观看 | 久久综合九色综合久久久精品综合 | 日韩在线视频在线观看 | 国产成人精品一区二区在线 | 99视频在线观看免费 | 国产精品亚洲人在线观看 | 91九色网站 | 欧美男同网站 | 免费91在线 | 欧美特一级 | 色欧美日韩 | 狠狠色丁香久久综合网 | 深爱激情亚洲 | 精品久久精品 | 9久久精品| 亚洲视频在线视频 | 97天天综合网 | 国产一二三在线视频 | 激情视频免费在线观看 | 国内99视频 | 国产精品一区二区吃奶在线观看 | 西西人体4444www高清视频 | 国产色在线 | 日韩久久一区二区 | ,久久福利影视 | 粉嫩av一区二区三区免费 | av免费看在线 | 国产手机在线观看 | 91成人区 | 亚洲精品久久久久久中文传媒 | 国产精品久久久久久久久久久不卡 | 美国三级黄色大片 | 亚洲精品视频一二三 | 狠狠操电影网 | 国产成人精品久 | 午夜丁香视频在线观看 | 亚洲精品白浆高清久久久久久 | 亚洲黄色免费 | 国产精品久久久久久久久久妇女 | 麻豆视频www | 国产精国产精品 | 手机在线永久免费观看av片 | 一区二区视频在线看 | 国内成人av | 免费视频久久久久 | 国产一区欧美二区 | 国内精品久久久久影院男同志 | 亚洲aⅴ一区二区三区 | 99久久婷婷国产精品综合 | 日本黄区免费视频观看 | 国产剧在线观看片 | 日韩极品在线 | 91九色国产 | 欧美精品在线观看免费 | 伊色综合久久之综合久久 | 狠狠色综合欧美激情 | 亚洲精选在线观看 | 久久久首页 | 中文字幕一二 | a视频免费在线观看 | 91av中文| 久久污视频 | 91在线观看欧美日韩 | 精品国产一区二区三区不卡 | 中文字幕日本在线观看 | 91精品第一页 | 精品国产不卡 | 77国产精品| 国产一区二区三区在线 | 99热手机在线 | 免费成人结看片 | 久久99精品久久久久久久久久久久 | 精品国产片 | 色欧美成人精品a∨在线观看 | 色视频在线看 | 2021国产精品 | a级一a一级在线观看 | 91传媒免费观看 | 国产麻豆果冻传媒在线观看 | 国产小视频在线观看 | 在线看的av网站 | 久久久在线 | 二区三区精品 | 国产人成精品一区二区三 | 伊人久久国产精品 | 97精品国产一二三产区 | 黄a在线看 | 精品国产一二三四区 | 又黄又爽又色无遮挡免费 | 成人亚洲免费 | 欧美久久久久久久久久久久 | 久久久久综合精品福利啪啪 | 日日天天av| 国产性xxxx| 日韩三级免费 | 97成人在线观看 | 亚洲精品黄色在线观看 | 免费看的黄色 | 永久免费av在线播放 | 91中文字幕永久在线 | 国产综合精品一区二区三区 | 免费精品视频在线观看 | 日精品在线观看 | 国产精品va视频 | 在线视频久 | 在线观看一区 | 九九免费视频 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 国产精品久久久久久久久久不蜜月 | 精品久久一区二区 | 国产91国语对白在线 | 中文字幕日韩伦理 | 在线激情影院一区 | 精品一二三四视频 | 久久久久亚洲精品成人网小说 | 999久久久免费精品国产 | 六月丁香色婷婷 | 天天综合操 | 麻花豆传媒mv在线观看网站 | 人人爽人人干 | 午夜精品一区二区三区在线播放 | 日韩毛片在线播放 | 中文字幕人成人 | 中文字幕视频观看 | av天天澡天天爽天天av | 在线免费观看一区二区三区 | 日日爱视频| 中文字幕乱码电影 | 最近最新中文字幕视频 | av在线短片| 永久免费毛片在线观看 | 天天射综合网视频 | 久久97久久 | 丁香色综合 | 午夜美女影院 | 亚洲欧美日韩在线看 | 久久免费国产电影 | 深爱激情站 | 在线看黄网站 | 国产精品成人自产拍在线观看 | 超薄丝袜一二三区 | 开心激情综合网 | 成人免费一区二区三区在线观看 | 九九免费在线观看 | 在线观看成人国产 | 欧美日韩激情视频8区 | 国产精品一区二区在线观看 | 免费在线观看视频一区 | 国模精品一区二区三区 | 国产在线专区 | 少妇18xxxx性xxxx片 | 久久免费视频观看 | 久久这里有 | 日本论理电影 | 草久在线观看视频 | 精品视频亚洲 | 欧美日韩性视频在线 | 国产高清在线免费视频 | 中文字幕一区二区三区久久 | 亚洲成人精品久久 | 日韩偷拍精品 | 久久久91精品国产一区二区精品 | 久久久久久久综合色一本 | 97超碰人人澡 | 久久免费视频8 | 久草在线视频新 | 国产精品99久久久久久久久 | 超碰九九| 高清国产在线一区 | 精品国产伦一区二区三区观看说明 | 国产精品嫩草影视久久久 | 国产91aaa | www.久久91| 综合久久久久久久 | 中文字幕第一 | 久久久久久久av | 久草在线观看 | 欧美精品乱码久久久久久按摩 | 日韩一区二区三免费高清在线观看 | 国产精品久久9 | 伊人午夜视频 | 人人爱天天操 | 成 人 黄 色 免费播放 | 中文字幕亚洲欧美日韩 | 日韩一级成人av | 国产精品va在线观看入 | 天天操比 | 日本中文字幕久久 | 久久久午夜精品福利内容 | 婷婷伊人五月 | 国产精品嫩草影院123 | 久久国精品 | 亚洲免费成人 | 亚洲日韩欧美视频 | 久久理伦片 | 日韩精品一区在线观看 | 丁香婷婷综合五月 | 91视频91蝌蚪 | 丁香5月婷婷久久 | 亚洲精选在线观看 | 久久线视频| 黄色日批网站 | 久久这里有 | 日日干av | 久久少妇av | 韩国av电影在线观看 | 夜夜视频资源 | av日韩国产 | 亚洲男男gaygay无套 | 亚洲日本国产 | 国产精品一区二区三区观看 | 久久精品视频5 | 有没有在线观看av | 丁香视频免费观看 | 在线视频一二区 | 国产伦理一区 | 欧美日韩高清国产 | 在线a人片免费观看视频 | 日本超碰在线 | 热久久这里只有精品 | 成人国产精品一区 | 欧美一进一出抽搐大尺度视频 | 免费视频久久久 | 999ZYZ玖玖资源站永久 | 成人久久亚洲 | 黄色精品一区二区 | 亚洲精品一区二区三区高潮 | 午夜的福利 | 久久精品视频日本 | 国产精品av免费观看 | 91| 免费在线一区二区三区 | 久久精品视频在线观看免费 | www最近高清中文国语在线观看 | 国产精品青草综合久久久久99 | 开心激情久久 | 亚洲色图色 | 蜜臀av性久久久久蜜臀av | 日韩视频免费在线观看 | 一区 在线观看 | 99热在线免费观看 | 久久国产精品第一页 | 久久视屏网 | 国产精品久久久av久久久 | 九九视频这里只有精品 | 久艹在线播放 | 国产一区二区在线播放视频 | 99久久精| 中文字幕一区二区三区久久 | 久久精品视频一 | 国产香蕉97碰碰久久人人 | 欧美aⅴ在线观看 | 国产精品久久99综合免费观看尤物 | 手机成人av | 色婷婷狠 | 国产网红在线观看 | 在线观看激情av | 久久电影日韩 | 中文字幕超清在线免费 | 国内偷拍精品视频 | 手机在线中文字幕 | 欧美日韩久久一区 | 五月天婷婷在线视频 | 国产精品入口久久 | 亚洲三级网站 | 天天操天天操天天干 | 最新在线你懂的 | 波多野结衣视频一区二区三区 | 亚洲综合网站在线观看 | 在线看欧美 | 一区二区三区在线视频111 | 亚洲va欧美va国产va黑人 | 四虎国产精 | 在线观看www91 | 麻豆精品国产传媒 | 亚洲国产欧美一区二区三区丁香婷 | 亚洲一区二区视频在线 | 亚洲综合在线五月天 | 国产成人一二三 | 九九免费在线视频 | 婷婷五情天综123 | 福利网址在线观看 | 91在线公开视频 | 日韩视频一区二区三区 | 国产中文字幕视频在线观看 | 亚洲观看黄色网 | 精品国产伦一区二区三区 | 2021国产精品 | 午夜精品一区二区三区免费 | 亚洲精品免费在线观看视频 | 日日爱网址 | 91亚洲影院 | 激情欧美一区二区三区免费看 | 亚洲aⅴ在线观看 | 精品国产视频在线观看 | 新av在线 | 超碰在线观看99 | 婷婷午夜 | 手机在线永久免费观看av片 | 男女拍拍免费视频 | 国产日韩精品一区二区三区在线 | 三级动态视频在线观看 | 婷婷综合 | 久久国内精品99久久6app | 国产精品美女久久久久久2018 | 狠狠干在线 | 色婷婷免费视频 | 欧美大片第1页 | 久久免费黄色大片 | 欧美在线视频一区二区三区 | 992tv成人免费看片 | 成人在线观看影院 | 中文在线字幕免费观 | 国产一区二区高清不卡 | 亚洲国产精品久久久 | 午夜狠狠操 | 日韩在线网 | 国产精品美女 | 久久精品视频网站 | 国产午夜一区二区 | 欧美日韩性视频 | 国产高清 不卡 | 久草视频99| 女人高潮一级片 | 射久久| 欧美午夜理伦三级在线观看 | 午夜电影一区 | 国产亚洲视频在线免费观看 | 在线观看视频97 | 中文字幕乱视频 | 国产黄色大全 | 色com| 黄色软件视频大全免费下载 | 五月婷婷激情综合网 | 久久久国产一区二区三区四区小说 | 亚洲波多野结衣 | 在线黄色免费 | 精品国产伦一区二区三区观看说明 | 黄色一及电影 | 99久久久久久国产精品 | 国产a免费 | 亚洲理论视频 | 四虎国产免费 | 国产小视频你懂的在线 | 伊人永久| 日韩av电影免费观看 | 九九视频免费在线观看 | 99久热在线精品视频观看 | 亚洲精品午夜久久久久久久久久久 | 91精品国自产在线观看欧美 | 天天爽人人爽 | 四虎影视www | 欧美视频国产视频 | 日韩成人免费在线 | 综合在线观看色 | 碰天天操天天 | 久久精品国产免费观看 | 国产视频1 | 九九免费在线观看视频 | 人人舔人人 | 欧美日韩在线观看视频 | 亚洲成av人影片在线观看 | 中文字幕精品www乱入免费视频 | 日韩精品久久久久久久电影竹菊 | 日韩在线观看三区 | 国产99久久久国产精品免费看 | 久久成人18免费网站 | 成人av电影免费在线观看 | 五月婷婷一级片 | 色综合网在线 | 国产.精品.日韩.另类.中文.在线.播放 | 午夜美女wwww| 久久福利 | 久久9精品| 69视频国产 | 久久久精品久久 | 中文电影网 | 日本精a在线观看 | 国产美女黄网站免费 | 99色视频 | 日韩在线观看中文字幕 | 在线观看国产成人av片 | 九九九九热精品免费视频点播观看 | 日日弄天天弄美女bbbb | 人人讲下载 | 欧美一区二区三区免费看 | 国产午夜精品在线 | 色国产在线 | 午夜美女福利 | 午夜精品视频福利 | 日韩av在线影视 | 国产v在线播放 | 亚洲区另类春色综合小说 | 久草在线高清视频 | 久久精品视频日本 | 狠狠色狠狠色 | 91尤物在线播放 | 久久久久久久久久久国产精品 | 热久久免费视频精品 | 成人黄色小说视频 | 国产精品久久久久久吹潮天美传媒 | 国产在线成人 | av中文字幕在线播放 | 少妇自拍av | 国内精品视频一区二区三区八戒 | 992tv在线观看网站 | av免费在线观 | 色吧av色av | 久久久麻豆视频 | 成人免费观看在线视频 | 麻豆视屏 | 久久优| 中文字幕在线观看的网站 | 91免费观看视频网站 | 国产1级毛片 | 日韩精品中文字幕在线不卡尤物 | 一级黄色大片在线观看 | 丁香花在线视频观看免费 | 深爱激情丁香 | 亚洲伊人成综合网 | 韩国中文三级 | 女人高潮一级片 | 成人久久18免费网站 | 一区二区精 | 日韩欧美高清一区二区三区 | 中文字幕在线看 | 亚洲最大av在线播放 | 黄色特一级片 | 毛片基地黄久久久久久天堂 | 色97在线 | 91大神一区二区三区 | 国产精品ssss在线亚洲 | 日韩电影在线观看一区二区三区 | 久久高清毛片 | 国产精品高清在线 | 在线观看国产一区 | 久久爱992xxoo | 国产午夜视频在线观看 | 久久高清精品 | 在线看免费 | 亚洲 欧美 变态 国产 另类 | 色偷偷97 | 99久久国产免费免费 | 久久亚洲私人国产精品va | 中文字幕在线观看资源 | 天天干夜夜爱 | 国产精品免费不 | 99免费在线视频观看 | 国产在线第三页 | 午夜私人影院 | 亚洲人人爱 | av福利网址导航 | 日韩免费网址 | 91成人短视频在线观看 | 国产区 在线 | 日韩av影视在线观看 | 日本中文字幕高清 | 手机av资源| 麻豆视频在线免费观看 | 久久九九久久 | 天天干天天操天天射 | 夜夜骑首页| 999一区二区三区 | 99久久爱| 国产亚洲精品久久网站 | 国产69精品久久久久久久久久 | 成人黄色在线 | www.干| 爱爱av在线| av电影在线播放 | 日韩乱码中文字幕 | 国产成人久久av977小说 | 激情久久影院 | 国产精品福利在线观看 | 日本aaaa级毛片在线看 | 日韩高清一区在线 | 99精品久久99久久久久 | 91精品一区二区三区久久久久久 | 中文字幕不卡在线88 | 狠狠综合久久 | 丁香婷婷激情 | 国产美腿白丝袜足在线av | 激情av资源网 | 黄色毛片一级片 | 亚洲欧洲国产视频 | 成人免费中文字幕 | 黄色小说视频在线 | 日韩在线理论 | 久久久久国产a免费观看rela | 不卡av在线免费观看 | 成年人国产精品 | 精品亚洲va在线va天堂资源站 | 精品久久久久一区二区国产 | www.久久99 | 精品成人网 | 亚洲狠狠丁香婷婷综合久久久 | 首页国产精品 | 国产精品男女 | 黄色精品免费 | 日韩免费一级a毛片在线播放一级 | 97超碰在线资源 | 国产日产精品久久久久快鸭 | 免费看的黄网站 | 91在线观看视频网站 | 九色视频自拍 | 丁香午夜 | 免费视频xnxx com | 91桃色免费观看 | 欧美精品亚洲精品日韩精品 | 国产伦精品一区二区三区免费 | 国产区免费在线 | 激情狠狠干 | 丰满少妇久久久 | 久久精品中文视频 | 国产精品一区二区久久精品爱微奶 | 超碰免费久久 | 天天操天天插 | 日本高清中文字幕有码在线 | 久久爱导航 | 国产精品高清在线 | 亚洲精品777 | 久久爽久久爽久久av东京爽 | 国产精品九九九 | 日韩欧美在线观看一区 | 91成人黄色 | 久久精品永久免费 | 久久 一区 | 免费在线观看一区 | 日韩a在线 | av黄色在线播放 | 精品视频一区在线观看 | 中文亚洲欧美日韩 | 久久99精品国产91久久来源 | 在线免费黄色av | 国产精品久久久久久一区二区 | 国产精品色婷婷 | 狠狠的干狠狠的操 | 四虎在线免费观看视频 | 色婷五月天 | 国产一区免费 | 日韩激情中文字幕 | 欧美性直播 | 91九色在线观看视频 | 婷婷六月综合网 | 欧美日韩一区二区免费在线观看 | 999久久久免费精品国产 | 欧美另类美少妇69xxxx | 免费看的国产视频网站 | 国产精品va最新国产精品视频 | 婷婷色在线资源 | 亚洲人成人在线 | 久久久久久毛片 | 最近日韩免费视频 | 国产精品一区二区三区在线看 | 久久精品中文字幕一区二区三区 | 欧美成年网站 | 911av视频 | 国产精品成人免费一区久久羞羞 | 日本在线观看一区二区三区 | av电影免费观看 | 精品嫩模福利一区二区蜜臀 | 美女免费视频一区 | 粉嫩av一区二区三区四区在线观看 | 人九九精品| 亚洲一级特黄 | 精品主播网红福利资源观看 | 日韩资源在线观看 | 99热这里有精品 | 日韩大陆欧美高清视频区 | 婷婷av电影 | 久久亚洲精品电影 | 粉嫩av一区二区三区入口 | www99精品| 久久视| 国产高清视频在线免费观看 | 少妇bbb搡bbbb搡bbbb | www.夜夜| 亚洲精品久久久久中文字幕二区 | 国产91免费在线 | 欧美性生活免费看 | 精品免费视频. | 日韩久久精品一区二区三区 | 精品一区二区日韩 | 天天插天天 | 麻豆传媒电影在线观看 | 中文字幕在线字幕中文 | 日日日视频 | 一区二区伦理 | 欧美一二三四在线 | 99视频一区| 国产黄色片在线 | 国产一级a毛片视频爆浆 | 99久久日韩精品免费热麻豆美女 | 18网站在线观看 | 99亚洲精品 | 97视频人人免费看 | 天堂视频中文在线 | 在线看成人 | 天天综合网天天综合色 | 久久亚洲综合国产精品99麻豆的功能介绍 | 久久草在线免费 | 久久久久久久久久网站 | 婷婷丁香在线观看 | 久久久久久97三级 | 久久黄色美女 | 国产精品欧美久久久久天天影视 | 中文字幕在线影院 | 欧美激情综合五月色丁香 | 中文亚洲欧美日韩 | av线上免费看| 正在播放 国产精品 | 国产一级精品视频 | 蜜臀久久99静品久久久久久 | 在线免费中文字幕 | 国产精品99久久久久久有的能看 | 五月开心激情 | 永久免费观看视频 | 久久久国产精品人人片99精片欧美一 | 蜜臀一区二区三区精品免费视频 | 国产黄色免费电影 | 国产在线国偷精品产拍免费yy | 99国产视频| 美女黄频| 中文字幕资源在线观看 | 久久综合九色欧美综合狠狠 | 最新中文字幕在线播放 | 五月天天色| 日韩免费视频线观看 | 在线观看小视频 | 国产成在线观看免费视频 | 99久久精品国产一区二区三区 | 免费看毛片在线 | 91精品视频网站 | 国产精品自在欧美一区 | 国产成人一区二区啪在线观看 | 最新日韩视频在线观看 | 亚洲午夜av久久乱码 | 国产中文a| 久久久午夜精品理论片中文字幕 | 91高清免费| aⅴ视频在线| 国语精品久久 | 国产精品国产亚洲精品看不卡15 | 中文字幕中文字幕在线中文字幕三区 | 亚洲精品乱码久久久久久写真 | 久久这里只精品 | 久久精品4| 97香蕉超级碰碰久久免费软件 | 五月婷亚洲 | 欧美激情xxxx | 日韩综合视频在线观看 | 色婷婷亚洲精品 | 天天五月天色 | 日本黄色片一区二区 | 91一区啪爱嗯打偷拍欧美 | 欧美亚洲另类在线视频 | 91成人网页版 | 欧美一二三区在线播放 | 波多野结衣视频一区二区三区 | 国产精品免费观看视频 | 久久av免费电影 | 最新午夜 | 一区二区三区四区五区在线视频 | 日韩欧美亚州 | 最近更新的中文字幕 | 夜夜视频资源 | 一区二区视频播放 | 久久久999精品视频 国产美女免费观看 | 亚洲精品麻豆 | 一区二区不卡视频在线观看 | 日韩高清免费无专码区 | 日韩三区在线观看 | 狠狠躁18三区二区一区ai明星 | 久久久片 | 精品在线观看一区二区三区 | 五月导航| 中文字幕在线观看视频免费 | 国产综合精品一区二区三区 | 午夜精品久久久 | 丁香在线 | 国产精品成人一区二区三区吃奶 | 婷婷电影在线观看 | 亚洲三级影院 | 精品国产中文字幕 | 免费在线观看日韩视频 | av理论电影 | 久久91久久久久麻豆精品 | 免费看国产曰批40分钟 | 国产精品18久久久久久久久久久久 | 国产成人精品久久久 | 在线97| 日本女人b | 人人玩人人添人人澡超碰 | 在线播放一区二区三区 | 青青啪| 日本在线精品视频 | 中文字幕资源网 国产 | 激情狠狠干 | 国产小视频精品 | 欧美精品在线观看一区 | 日韩精品免费一线在线观看 | 91丨九色丨首页 | 手机看片国产日韩 | 伊人资源视频在线 | 九九热视频在线播放 | 久久天天躁 | 久久大片 | www欧美xxxx| 国产婷婷色 | 97在线视频免费观看 |