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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多线程,多进程选择(了解)

發(fā)布時間:2025/3/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多线程,多进程选择(了解) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

魚還是熊掌:淺談多進(jìn)程多線程的選擇

關(guān)于多進(jìn)程和多線程,教科書上最經(jīng)典的一句話是“進(jìn)程是資源分配的最小單位,線程是CPU調(diào)度的最小單位”,這句話應(yīng)付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有這么簡單了,選的不好,會讓你深受其害。

?

經(jīng)常在網(wǎng)絡(luò)上看到有的XDJM問“多進(jìn)程好還是多線程好?”、“Linux下用多進(jìn)程還是多線程?”等等期望一勞永逸的問題,我只能說:沒有最好,只有更好。根據(jù)實(shí)際情況來判斷,哪個更加合適就是哪個好。

?

我們按照多個不同的維度,來看看多線程和多進(jìn)程的對比(注:因?yàn)槭歉行缘谋容^,因此都是相對的,不是說一個好得不得了,另外一個差的無法忍受)。

?

?

對比維度

多進(jìn)程

多線程

總結(jié)

數(shù)據(jù)共享、同步

數(shù)據(jù)共享復(fù)雜,需要用IPC;數(shù)據(jù)是分開的,同步簡單

因?yàn)楣蚕磉M(jìn)程數(shù)據(jù),數(shù)據(jù)共享簡單,但也是因?yàn)檫@個原因?qū)е峦綇?fù)雜

各有優(yōu)勢

內(nèi)存、CPU

占用內(nèi)存多,切換復(fù)雜,CPU利用率低

占用內(nèi)存少,切換簡單,CPU利用率高

線程占優(yōu)

創(chuàng)建銷毀、切換

創(chuàng)建銷毀、切換復(fù)雜,速度慢

創(chuàng)建銷毀、切換簡單,速度很快

線程占優(yōu)

編程、調(diào)試

編程簡單,調(diào)試簡單

編程復(fù)雜,調(diào)試復(fù)雜

進(jìn)程占優(yōu)

可靠性

進(jìn)程間不會互相影響

一個線程掛掉將導(dǎo)致整個進(jìn)程掛掉

進(jìn)程占優(yōu)

分布式

適應(yīng)于多核、多機(jī)分布式;如果一臺機(jī)器不夠,擴(kuò)展到多臺機(jī)器比較簡單

適應(yīng)于多核分布式

進(jìn)程占優(yōu)

?

?

1)需要頻繁創(chuàng)建銷毀的優(yōu)先用線程

原因請看上面的對比。

這種原則最常見的應(yīng)用就是Web服務(wù)器了,來一個連接建立一個線程,斷了就銷毀線程,要是用進(jìn)程,創(chuàng)建和銷毀的代價是很難承受的

2)需要進(jìn)行大量計算的優(yōu)先使用線程

所謂大量計算,當(dāng)然就是要耗費(fèi)很多CPU,切換頻繁了,這種情況下線程是最合適的。

這種原則最常見的是圖像處理、算法處理。

3)強(qiáng)相關(guān)的處理用線程,弱相關(guān)的處理用進(jìn)程

什么叫強(qiáng)相關(guān)、弱相關(guān)?理論上很難定義,給個簡單的例子就明白了。

一般的Server需要完成如下任務(wù):消息收發(fā)、消息處理。“消息收發(fā)”和“消息處理”就是弱相關(guān)的任務(wù),而“消息處理”里面可能又分為“消息解碼”、“業(yè)務(wù)處理”,這兩個任務(wù)相對來說相關(guān)性就要強(qiáng)多了。因此“消息收發(fā)”和“消息處理”可以分進(jìn)程設(shè)計,“消息解碼”、“業(yè)務(wù)處理”可以分線程設(shè)計。

當(dāng)然這種劃分方式不是一成不變的,也可以根據(jù)實(shí)際情況進(jìn)行調(diào)整。

4)可能要擴(kuò)展到多機(jī)分布的用進(jìn)程,多核分布的用線程

原因請看上面對比。

5)都滿足需求的情況下,用你最熟悉、最拿手的方式

至于“數(shù)據(jù)共享、同步”、“編程、調(diào)試”、“可靠性”這幾個維度的所謂的“復(fù)雜、簡單”應(yīng)該怎么取舍,我只能說:沒有明確的選擇方法。但我可以告訴你一個選擇原則:如果多進(jìn)程和多線程都能夠滿足要求,那么選擇你最熟悉、最拿手的那個。?

需要提醒的是:雖然我給了這么多的選擇原則,但實(shí)際應(yīng)用中基本上都是“進(jìn)程+線程”的結(jié)合方式,千萬不要真的陷入一種非此即彼的誤區(qū)。

?

消耗資源:

從內(nèi)核的觀點(diǎn)看,進(jìn)程的目的就是擔(dān)當(dāng)分配系統(tǒng)資源(CPU時間、內(nèi)存等)的基本單位。線程是進(jìn)程的一個執(zhí)行流,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位。

線程,它們彼此之間使用相同的地址空間,共享大部分?jǐn)?shù)據(jù),啟動一個線程所花費(fèi)的空間遠(yuǎn)遠(yuǎn)小于啟動一個進(jìn)程所花費(fèi)的空間,而且,線程間彼此切換所需的時間也遠(yuǎn)遠(yuǎn)小于進(jìn)程間切換所需要的時間。據(jù)統(tǒng)計,總的說來,一個進(jìn)程的開銷大約是一個線程開銷的30倍左右,當(dāng)然,在具體的系統(tǒng)上,這個數(shù)據(jù)可能會有較大的區(qū)別。

通訊方式:

進(jìn)程之間傳遞數(shù)據(jù)只能是通過通訊的方式,即費(fèi)時又不方便。線程時間數(shù)據(jù)大部分共享(線程函數(shù)內(nèi)部不共享),快捷方便。但是數(shù)據(jù)同步需要鎖對于static變量尤其注意

線程自身優(yōu)勢:

提高應(yīng)用程序響應(yīng);使多CPU系統(tǒng)更加有效。操作系統(tǒng)會保證當(dāng)線程數(shù)不大于CPU數(shù)目時,不同的線程運(yùn)行于不同的CPU上;

改善程序結(jié)構(gòu)。一個既長又復(fù)雜的進(jìn)程可以考慮分為多個線程,成為幾個獨(dú)立或半獨(dú)立的運(yùn)行部分,這樣的程序會利于理解和修改。


實(shí)驗(yàn)數(shù)據(jù):

進(jìn)程實(shí)驗(yàn)代碼(fork.c):

  • #include?<stdlib.h>
  • #include?<stdio.h>
  • #include?<signal.h>
  • #define P_NUMBER 255?//并發(fā)進(jìn)程數(shù)量
  • #define COUNT 5?//每次進(jìn)程打印字符串?dāng)?shù)
  • #define TEST_LOGFILE?"logFile.log"
  • FILE?*logFile=NULL;
  • char?*s="hello linux\0";
  • int?main()
  • {
  • ????int?i=0,j=0;
  • ????logFile=fopen(TEST_LOGFILE,"a+");//打開日志文件
  • ????for(i=0;i<P_NUMBER;i++)
  • ????{
  • ????????if(fork()==0)//創(chuàng)建子進(jìn)程,if(fork()==0){}這段代碼是子進(jìn)程運(yùn)行區(qū)間
  • ????????{
  • ????????????for(j=0;j<COUNT;j++)
  • ????????????{
  • ????????????????printf("[%d]%s\n",j,s);//向控制臺輸出
  • ??????????????? /*當(dāng)你頻繁讀寫文件的時候,Linux內(nèi)核為了提高讀寫性能與速度,會將文件在內(nèi)存中進(jìn)行緩存,這部分內(nèi)存就是Cache Memory(緩存內(nèi)存)。可能導(dǎo)致測試結(jié)果不準(zhǔn),所以在此注釋*/
  • ????????????????//fprintf(logFile,"[%d]%s\n",j,s);//向日志文件輸出,
  • ????????????}
  • ????????????exit(0);//子進(jìn)程結(jié)束
  • ????????}
  • ????}
  • ????
  • ????for(i=0;i<P_NUMBER;i++)//回收子進(jìn)程
  • ????{
  • ????????wait(0);
  • ????}
  • ????
  • ????printf("Okay\n");
  • ????return 0;
  • }
  • 進(jìn)程實(shí)驗(yàn)代碼(thread.c):

  • #include?<pthread.h>
  • #include?<unistd.h>
  • #include?<stdlib.h>
  • #include?<stdio.h>
  • #define P_NUMBER 255//并發(fā)線程數(shù)量
  • #define COUNT 5?//每線程打印字符串?dāng)?shù)
  • #define TEST_LOG?"logFile.log"
  • FILE?*logFile=NULL;
  • char?*s="hello linux\0";
  • print_hello_linux()//線程執(zhí)行的函數(shù)
  • {
  • ????int?i=0;
  • ????for(i=0;i<COUNT;i++)
  • ????{
  • ????????printf("[%d]%s\n",i,s);//想控制臺輸出
  • ??????? /*當(dāng)你頻繁讀寫文件的時候,Linux內(nèi)核為了提高讀寫性能與速度,會將文件在內(nèi)存中進(jìn)行緩存,這部分內(nèi)存就是Cache Memory(緩存內(nèi)存)。可能導(dǎo)致測試結(jié)果不準(zhǔn),所以在此注釋*/
  • ????????//fprintf(logFile,"[%d]%s\n",i,s);//向日志文件輸出
  • ????}
  • ????pthread_exit(0);//線程結(jié)束
  • }
  • int?main()
  • {
  • ????int?i=0;
  • ????pthread_t pid[P_NUMBER];//線程數(shù)組
  • ????logFile=fopen(TEST_LOG,"a+");//打開日志文件
  • ????
  • ????for(i=0;i<P_NUMBER;i++)
  • ????????pthread_create(&pid[i],NULL,(void?*)print_hello_linux,NULL);//創(chuàng)建線程
  • ????????
  • ????for(i=0;i<P_NUMBER;i++)
  • ????????pthread_join(pid[i],NULL);//回收線程
  • ????????
  • ????printf("Okay\n");
  • ????return 0;
  • }
  • 兩段程序做的事情是一樣的,都是創(chuàng)建“若干”個進(jìn)程/線程,每個創(chuàng)建出的進(jìn)程/線程打印“若干”條“hello linux”字符串到控制臺和日志文件,兩個“若干”由兩個宏 P_NUMBER和COUNT分別定義,程序編譯指令如下:
    gcc -o fork fork.c
    gcc -lpthread -o thread thread.c

    實(shí)驗(yàn)通過time指令執(zhí)行兩個程序,抄錄time輸出的掛鐘時間(real時間):

    time ./fork
    time ./thread

    每批次的實(shí)驗(yàn)通過改動宏 P_NUMBER和COUNT來調(diào)整進(jìn)程/線程數(shù)量和打印次數(shù),每批次測試五輪,得到的結(jié)果如下:

    一、重復(fù)周麗論文實(shí)驗(yàn)步驟

    (注:本文平均值算法采用的是去掉一個最大值去掉一個最小值,然后平均)

    ?

    單核(雙核機(jī)器禁掉一核),進(jìn)程/線程數(shù):255,打印次數(shù)5

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均

    多進(jìn)程

    ?0m0.070s

    ?0m0.071s

    0m0.071s?

    0m0.070s?

    0m0.070s?

    0m0.070s?

    多線程

    ?0m0.049s

    0m0.049s?

    0m0.049s?

    0m0.049s?

    0m0.049s?

    0m0.049s?

    ?

    單核(雙核機(jī)器禁掉一核),進(jìn)程/線程數(shù):255,打印次數(shù)10

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均

    多進(jìn)程

    ?0m0.112s

    0m0.101s?

    0m0.100s?

    0m0.085s?

    0m0.121s?

    0m0.104s?

    多線程

    ?0m0.097s

    0m0.089s?

    0m0.090s?

    0m0.104s?

    0m0.080s?

    0m0.092s?

    ?

    單核(雙核機(jī)器禁掉一核),進(jìn)程/線程數(shù):255,打印次數(shù)50

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均

    多進(jìn)程

    ?0m0.459s

    0m0.531s?

    0m0.499s?

    0m0.499s?

    0m0.524s?

    0m0.507s?

    多線程

    ?0m0.387s

    0m0.456s?

    0m0.435s?

    0m0.423s?

    0m0.408s?

    0m0.422s?

    ?

    單核(雙核機(jī)器禁掉一核),進(jìn)程/線程數(shù):255,打印次數(shù)100

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均

    多進(jìn)程

    ?0m1.141s

    0m0.992s?

    0m1.134s?

    0m1.027s?

    0m0.965s?

    0m1.051s?

    多線程

    ?0m0.925s

    0m0.899s?

    0m0.961s?

    0m0.934s?

    0m0.853s?

    0m0.919s?

    ?

    單核(雙核機(jī)器禁掉一核),進(jìn)程/線程數(shù):255,打印次數(shù)500

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均

    多進(jìn)程

    ?0m5.221s

    0m5.258s?

    0m5.706s?

    0m5.288s?

    0m5.455s?

    0m5.334s

    多線程

    ?0m4.689s

    0m4.578s?

    0m4.670s?

    0m4.566s?

    0m4.722s?

    0m4.646s?

    ?

    單核(雙核機(jī)器禁掉一核),進(jìn)程/線程數(shù):255,打印次數(shù)1000

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均

    多進(jìn)程

    ?0m12.680s

    0m16.555s?

    0m11.158s?

    0m10.922s?

    0m11.206s?

    0m11.681s?

    多線程

    ?0m12.993s

    0m13.087s?

    0m13.082s?

    0m13.485s?

    0m13.053s?

    0m13.074s?

    ?

    單核(雙核機(jī)器禁掉一核),進(jìn)程/線程數(shù):255,打印次數(shù)5000

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均

    多進(jìn)程

    ?1m27.348s

    1m5.569s?

    0m57.275s?

    1m5.029s?

    1m15.174s?

    1m8.591s?

    多線程

    ?1m25.813s

    1m29.299s

    1m23.842s?

    1m18.914s?

    1m34.872s?

    1m26.318s?

    ?

    單核(雙核機(jī)器禁掉一核),進(jìn)程/線程數(shù):255,打印次數(shù)10000

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均

    多進(jìn)程

    ?2m8.336s

    2m22.999s?

    2m11.046s?

    2m30.040s?

    2m5.752s?

    2m14.137s?

    多線程

    ?2m46.666s

    2m44.757s?

    2m34.528s?

    2m15.018s?

    2m41.436s?

    2m40.240s?


    出的結(jié)果是:任務(wù)量較大時,多進(jìn)程比多線程效率高;而完成的任務(wù)量較小時,多線程比多進(jìn)程要快,重復(fù)打印 600 次時,多進(jìn)程與多線程所耗費(fèi)的時間相同。

    ?

    、增加每進(jìn)程/線程的工作強(qiáng)度的實(shí)驗(yàn)

    這次將程序打印數(shù)據(jù)增大,原來打印字符串為:

  • char?*s =?"hello linux\0";
  • 現(xiàn)在修改為每次打印256個字節(jié)數(shù)據(jù):

  • char?*s?=?"1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\
  • ????1234567890abcdef\0";

  • 單核(雙核機(jī)器禁掉一核),進(jìn)程/線程數(shù):255??,打印次數(shù)100

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均

    多進(jìn)程

    ?0m6.977s

    ?0m7.358s

    ?0m7.520s

    ?0m7.282s

    ?0m7.218s

    ?0m7.286

    多線程

    ?0m7.035s

    ?0m7.552s

    ?0m7.087s

    ?0m7.427s

    ?0m7.257s

    ?0m7.257


    單核(雙核機(jī)器禁掉一核),進(jìn)程/線程數(shù):??255,打印次數(shù)500

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均

    多進(jìn)程

    ?0m35.666s

    ?0m36.009s

    ?0m36.532s

    ?0m35.578s

    ?0m41.537s

    ?0m36.069

    多線程

    ?0m37.290s

    ?0m35.688s

    ?0m36.377s

    ?0m36.693s

    ?0m36.784s

    ?0m36.618


    單核(雙核機(jī)器禁掉一核),進(jìn)程/線程數(shù):?255,打印次數(shù)1000

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均

    多進(jìn)程

    ?1m8.864s

    ?1m11.056s

    ?1m10.273s

    ?1m12.317s

    ?1m20.193s

    ?1m11.215

    多線程

    ?1m11.949s

    ?1m13.088s

    ?1m12.291s

    ?1m9.677s

    ?1m12.210s

    ?1m12.150



    【實(shí)驗(yàn)結(jié)論】

    從上面的實(shí)驗(yàn)比對結(jié)果看,即使Linux2.6使用了新的NPTL線程庫(據(jù)說比原線程庫性能提高了很多,唉,又是據(jù)說!),多線程比較多進(jìn)程在效率上沒有任何的優(yōu)勢,在線程數(shù)增大時多線程程序還出現(xiàn)了運(yùn)行錯誤,實(shí)驗(yàn)可以得出下面的結(jié)論:

    在Linux2.6上,多線程并不比多進(jìn)程速度快,考慮到線程棧的問題,多進(jìn)程在并發(fā)上有優(yōu)勢。

    四、多進(jìn)程和多線程在創(chuàng)建和銷毀上的效率比較

    預(yù)先創(chuàng)建進(jìn)程或線程可以節(jié)省進(jìn)程或線程的創(chuàng)建、銷毀時間,在實(shí)際的應(yīng)用中很多程序使用了這樣的策略,比如Apapche預(yù)先創(chuàng)建進(jìn)程、Tomcat 預(yù)先創(chuàng)建線程,通常叫做進(jìn)程池或線程池。在大部分人的概念中,進(jìn)程或線程的創(chuàng)建、銷毀是比較耗時的,在stevesn的著作《Unix網(wǎng)絡(luò)編程》中有這樣 的對比圖(第一卷 第三版 30章 客戶/服務(wù)器程序設(shè)計范式):

    ?

    行號服務(wù)器描述進(jìn)程控制CPU時間(秒,與基準(zhǔn)之差)Solaris2.5.1Digital Unix4.0bBSD/OS3.0
    0迭代服務(wù)器(基準(zhǔn)測試,無進(jìn)程控制)0.00.00.0
    1簡單并發(fā)服務(wù),為每個客戶請求fork一個進(jìn)程504.2168.929.6
    2預(yù)先派生子進(jìn)程,每個子進(jìn)程調(diào)用accept?6.21.8
    3預(yù)先派生子進(jìn)程,用文件鎖保護(hù)accept25.210.02.7
    4預(yù)先派生子進(jìn)程,用線程互斥鎖保護(hù)accept21.5??
    5預(yù)先派生子進(jìn)程,由父進(jìn)程向子進(jìn)程傳遞套接字36.710.96.1
    6并發(fā)服務(wù),為每個客戶請求創(chuàng)建一個線程18.74.7?
    7預(yù)先創(chuàng)建線程,用互斥鎖保護(hù)accept8.63.5?
    8預(yù)先創(chuàng)建線程,由主線程調(diào)用accept14.55.0?

    ?

    stevens已駕鶴西去多年,但《Unix網(wǎng)絡(luò)編程》一書仍具有巨大的影響力,上表中stevens比較了三種服務(wù)器上多進(jìn)程和多線程的執(zhí)行效 率,因?yàn)槿N服務(wù)器所用計算機(jī)不同,表中數(shù)據(jù)只能縱向比較,而橫向無可比性,stevens在書中提供了這些測試程序的源碼(也可以在網(wǎng)上下載)。書中介 紹了測試環(huán)境,兩臺與服務(wù)器處于同一子網(wǎng)的客戶機(jī),每個客戶并發(fā)5個進(jìn)程(服務(wù)器同一時間最多10個連接),每個客戶請求從服務(wù)器獲取4000字節(jié)數(shù)據(jù), 預(yù)先派生子進(jìn)程或線程的數(shù)量是15個。

    第0行是迭代模式的基準(zhǔn)測試程序,服務(wù)器程序只有一個進(jìn)程在運(yùn)行(同一時間只能處理一個客戶請求),因?yàn)闆]有進(jìn)程或線程的調(diào)度切換,因此它的速度是 最快的,表中其他服務(wù)模式的運(yùn)行數(shù)值是比迭代模式多出的差值。迭代模式很少用到,在現(xiàn)有的互聯(lián)網(wǎng)服務(wù)中,DNS、NTP服務(wù)有它的影子。第1~5行是多進(jìn) 程服務(wù)模式,期中第1行使用現(xiàn)場fork子進(jìn)程,2~5行都是預(yù)先創(chuàng)建15個子進(jìn)程模式,在多進(jìn)程程序中套接字傳遞不太容易(相對于多線 程),stevens在這里提供了4個不同的處理accept的方法。6~8行是多線程服務(wù)模式,第6行是現(xiàn)場為客戶請求創(chuàng)建子線程,7~8行是預(yù)先創(chuàng)建 15個線程。表中有的格子是空白的,是因?yàn)檫@個系統(tǒng)不支持此種模式,比如當(dāng)年的BSD不支持線程,因此BSD上多線程的數(shù)據(jù)都是空白的。

    從數(shù)據(jù)的比對看,現(xiàn)場為每客戶fork一個進(jìn)程的方式是最慢的,差不多有20倍的速度差異,Solaris上的現(xiàn)場fork和預(yù)先創(chuàng)建子進(jìn)程的最大差別是504.2 :21.5,但我們不能理解為預(yù)先創(chuàng)建模式比現(xiàn)場fork快20倍,原因有兩個:

    1. stevens的測試已是十幾年前的了,現(xiàn)在的OS和CPU已起了翻天覆地的變化,表中的數(shù)值需要重新測試。

    2. stevens沒有提供服務(wù)器程序整體的運(yùn)行計時,我們無法理解504.2 :21.5的實(shí)際運(yùn)行效率,有可能是1504.2 : 1021.5,也可能是100503.2 : 100021.5,20倍的差異可能很大,也可能可以忽略。

    因此我寫了下面的實(shí)驗(yàn)程序,來計算在Linux2.6上創(chuàng)建、銷毀10萬個進(jìn)程/線程的絕對用時。

    創(chuàng)建10萬個進(jìn)程(forkcreat.c):

  • #include?<stdio.h>
  • #include?<signal.h>
  • #include?<stdio.h>
  • #include?<unistd.h>
  • #include?<sys/stat.h>
  • #include?<fcntl.h>
  • #include?<sys/types.h>
  • #include?<sys/wait.h>
  • int?count;//子進(jìn)程創(chuàng)建成功數(shù)量?
  • int?fcount;//子進(jìn)程創(chuàng)建失敗數(shù)量?
  • int?scount;//子進(jìn)程回收數(shù)量?
  • /*信號處理函數(shù)–子進(jìn)程關(guān)閉收集*/
  • void sig_chld(int?signo)
  • {
  • ????pid_t chldpid;//子進(jìn)程id
  • ????int?stat;//子進(jìn)程的終止?fàn)顟B(tài)
  • ????
  • ????//子進(jìn)程回收,避免出現(xiàn)僵尸進(jìn)程
  • ????while((chldpid=wait(&stat)>0))
  • ????{
  • ????????scount++;
  • ????}
  • }
  • int?main()
  • {
  • ????//注冊子進(jìn)程回收信號處理函數(shù)
  • ????signal(SIGCHLD,sig_chld);
  • ????
  • ????int?i;
  • ????for(i=0;i<100000;i++)//fork()10萬個子進(jìn)程
  • ????{
  • ????????pid_t pid=fork();
  • ????????if(pid==-1)//子進(jìn)程創(chuàng)建失敗
  • ????????{
  • ????????????fcount++;
  • ????????}
  • ????????else?if(pid>0)//子進(jìn)程創(chuàng)建成功
  • ????????{
  • ????????????count++;
  • ????????}
  • ????????else?if(pid==0)//子進(jìn)程執(zhí)行過程
  • ????????{
  • ????????????exit(0);
  • ????????}
  • ????}
  • ????
  • ????printf("count:%d fount:%d scount:%d\n",count,fcount,scount);
  • }
  • 創(chuàng)建10萬個線程(pthreadcreat.c):

  • #include?<stdio.h>
  • #include?<pthread.h>
  • int?count=0;//成功創(chuàng)建線程數(shù)量
  • void thread(void)
  • {
  • ????//啥也不做
  • }
  • int?main(void)
  • {
  • ????pthread_t id;//線程id
  • ????int?i,ret;
  • ????
  • ????for(i=0;i<100000;i++)//創(chuàng)建10萬個線程
  • ????{
  • ????????ret=pthread_create(&id,NULL,(void?*)thread,NULL);
  • ????????if(ret!=0)
  • ????????{
  • ????????????printf("Create pthread error!\n");
  • ????????????return(1);
  • ????????}
  • ????????count++;
  • ????????pthread_join(id,NULL);
  • ????}
  • ????
  • ????printf("count:%d\n",count);
  • }
  • 創(chuàng)建10萬個線程的Java程序:

  • public?class?ThreadTest
  • ????{
  • ????????public?static?void?main(String[]?ags)?throws?InterruptedException
  • ????????{
  • ????????????System.out.println("開始運(yùn)行");
  • ????????????long?start?=?System.currentTimeMillis();
  • ????????????for(int?i?=?0;?i?<?100000;?i++)?//創(chuàng)建10萬個線程
  • ????????????{
  • ????????????????Thread?athread?=?new?Thread();?//創(chuàng)建線程對象
  • ????????????????athread.start();?//啟動線程
  • ????????????????athread.join();?//等待該線程停止
  • ????????????}
  • ???????????
  • ????????????System.out.println("用時:"?+?(System.currentTimeMillis()?–?start)?+?" 毫秒");
  • ????????}
  • ????}
  • ?

    單核(雙核機(jī)器禁掉一核),創(chuàng)建銷毀10萬個進(jìn)程/線程

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均

    多進(jìn)程

    ?0m8.774s

    ?0m8.780s

    ?0m8.475s

    ?0m8.592s

    ?0m8.687s

    ?0m8.684

    多線程

    ?0m0.663s

    ?0m0.660s

    ?0m0.662s

    ?0m0.660s

    ?0m0.661s

    ?0m0.661

    創(chuàng)建銷毀10萬個線程(Java)
    12286毫秒

    ?

    從數(shù)據(jù)可以看出,多線程比多進(jìn)程在效率上有10多倍的優(yōu)勢,但不能讓我們在使用哪種并發(fā)模式上定性,這讓我想起多年前政治課上的一個場景:在講到優(yōu)越性時,面對著幾個對此發(fā)表質(zhì)疑評論的調(diào)皮男生,我們的政治老師發(fā)表了高見,“不能只橫向地和當(dāng)今的發(fā)達(dá)國家比,你應(yīng)該縱向地和過去中國幾十年的發(fā)展歷史 比”。政治老師的話套用在當(dāng)前簡直就是真理,我們看看,即使是在賽揚(yáng)CPU上,創(chuàng)建、銷毀進(jìn)程/線程的速度都是空前的,可以說是有質(zhì)的飛躍的,平均創(chuàng)建銷毀一個進(jìn)程的速度是0.18毫秒,對于當(dāng)前服務(wù)器幾百、幾千的并發(fā)量,還有預(yù)先派生子進(jìn)程/線程的必要嗎?

    預(yù)先派生子進(jìn)程/線程比現(xiàn)場創(chuàng)建子進(jìn)程/線程要復(fù)雜很多,不僅要對池中進(jìn)程/線程數(shù)量進(jìn)行動態(tài)管理,還要解決多進(jìn)程/多線程對accept的“搶” 問題,在stevens的測試程序中,使用了“驚群”和“鎖”技術(shù)。即使stevens的數(shù)據(jù)表格中,預(yù)先派生線程也不見得比現(xiàn)場創(chuàng)建線程快,在 《Unix網(wǎng)絡(luò)編程》第三版中,新作者參照stevens的測試也提供了一組數(shù)據(jù),在這組數(shù)據(jù)中,現(xiàn)場創(chuàng)建線程模式比預(yù)先派生線程模式已有了效率上的優(yōu)勢。因此我對這一節(jié)實(shí)驗(yàn)下的結(jié)論是:

    預(yù)先派生進(jìn)程/線程的模式(進(jìn)程池、線程池)技術(shù),不僅復(fù)雜,在效率上也無優(yōu)勢,在新的應(yīng)用中可以放心大膽地為客戶連接請求去現(xiàn)場創(chuàng)建進(jìn)程和線程。

    我想,這是fork迷們最愿意看到的結(jié)論了。

    五、雙核系統(tǒng)重復(fù)周麗論文實(shí)驗(yàn)步驟

    ?

    雙核,進(jìn)程/線程數(shù):255?,打印次數(shù)10

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均(單核倍數(shù))

    多進(jìn)程

    0m0.061s

    0m0.053s

    0m0.068s

    0m0.061s

    0m0.059s

    ?0m0.060(1.73)

    多線程

    0m0.054s

    0m0.040s

    0m0.053s

    0m0.056s

    0m0.042s

    ?0m0.050(1.84)

    ?

    ?

    ?

    雙核,進(jìn)程/線程數(shù):?255,打印次數(shù)100

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均(單核倍數(shù))

    多進(jìn)程

    0m0.918s

    0m1.198s

    0m1.241s

    0m1.017s

    ?0m1.172s

    ?0m1.129(0.93)

    多線程

    0m0.897s

    0m1.166s

    0m1.091s?

    0m1.360s

    ?0m0.997s

    ?0m1.085(0.85)

    ?

    ?

    ?

    雙核,進(jìn)程/線程數(shù):?255,打印次數(shù)1000

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均(單核倍數(shù))

    多進(jìn)程

    0m11.276s

    0m11.269s?

    0m11.218s

    0m10.919s

    0m11.201s

    ?0m11.229(1.04)

    多線程

    0m11.525s

    0m11.984s

    0m11.715s

    0m11.433s

    0m10.966s

    ?0m11.558(1.13)

    ?



    ?

    雙核,進(jìn)程/線程數(shù):255?,打印次數(shù)10000

    ?

    第1次

    第2次

    第3次

    第4次

    第5次

    平均(單核倍數(shù))

    多進(jìn)程

    1m54.328s

    1m54.748s

    1m54.807s

    1m55.950s

    1m57.655s

    ?1m55.168(1.16)

    多線程

    2m3.021s

    1m57.611s

    1m59.139s?

    1m58.297s

    1m57.258s?

    ?1m58.349(1.35)

    ?


    【實(shí)驗(yàn)結(jié)論】

    雙核處理器在完成任務(wù)量較少時,沒有系統(tǒng)其他瓶頸因素影響時基本上是單核的兩倍,在任務(wù)量較多時,受系統(tǒng)其他瓶頸因素的影響,速度明顯趨近于單核的速度。

    六、并發(fā)服務(wù)的不可測性

    看到這里,你會感覺到我有挺進(jìn)程、貶線程的論調(diào),實(shí)際上對于現(xiàn)實(shí)中的并發(fā)服務(wù)具有不可測性,前面的實(shí)驗(yàn)和結(jié)論只可做參考,而不可定性。對于不可測性,我舉個生活中的例子。

    這幾年在大都市生活的朋友都感覺城市交通狀況越來越差,到處堵車,從好的方面想這不正反應(yīng)了我國GDP的高速發(fā)展。如果你7、8年前來到西安市,穿 過南二環(huán)上的一些十字路口時,會發(fā)現(xiàn)一個奇怪的U型彎的交通管制,為了更好的說明,我畫了兩張圖來說明,第一張圖是采用U型彎之前的,第二張是采用U型彎 之后的。

    南二環(huán)交通圖一

    南二環(huán)交通圖二

    為了講述的方便,我們不考慮十字路口左拐的情況,在圖一中東西向和南北向的車輛交匯在十字路口,用紅綠燈控制同一時間只能東西向或南北向通行,一般 的十字路口都是這樣管控的。隨著車輛的增多,十字路口的堵塞越來越嚴(yán)重,尤其是上下班時間經(jīng)常出現(xiàn)堵死現(xiàn)象。于是交通部門在不動用過多經(jīng)費(fèi)的情況下而采用 了圖二的交通管制,東西向車輛行進(jìn)方式不變,而南北向車輛不能直行,需要右拐到下一個路口拐一個超大的U型彎,這樣的措施避免了因車輛交錯而引發(fā)堵死的次 數(shù),從而提高了車輛的通過效率。我曾經(jīng)問一個每天上下班乘公交經(jīng)過此路口的同事,他說這樣的改動不一定每次上下班時間都能縮短,但上班時間有保障了,從而 遲到次數(shù)減少了。如果今天你去西安市的南二環(huán)已經(jīng)見不到U型彎了,東西向建設(shè)了高架橋,車輛分流后下層的十字路口已恢復(fù)為圖一方式。

    從效率的角度分析,在圖一中等一個紅燈45秒,遠(yuǎn)遠(yuǎn)小于圖二拐那個U型彎用去的時間,但實(shí)際情況正好相反。我們可以設(shè)想一下,如果路上的所有運(yùn)行車 輛都是同一型號(比如說全是QQ3微型車),所有的司機(jī)都遵守交規(guī),具有同樣的心情和性格,那么圖一的通行效率肯定比圖二高。現(xiàn)實(shí)中就不一樣了,首先車輛 不統(tǒng)一,有大車、小車、快車、慢車,其次司機(jī)的品行不一,有特別遵守交規(guī)的,有想耍點(diǎn)小聰明的,有性子慢的,也有的性子急,時不時還有三輪摩托逆行一下, 十字路口的“死鎖”也就難免了。

    那么在什么情況下圖二優(yōu)于圖一,是否能拿出一個科學(xué)分析數(shù)據(jù)來呢?以現(xiàn)在的科學(xué)技術(shù)水平是拿不出來的,就像長期的天氣預(yù)報不可預(yù)測一樣,西安市的交管部門肯定不是分析各種車輛的運(yùn)行規(guī)律、速度,再進(jìn)行復(fù)雜的社會學(xué)、心理學(xué)分析做出U型彎的決定的,這就是要說的不可測性。

    現(xiàn)實(shí)中的程序亦然如此,比如WEB服務(wù)器,有的客戶在快車道(寬帶),有的在慢車道(窄帶),有的性子慢(等待半分鐘也無所謂),有的性子急(拼命 的進(jìn)行瀏覽器刷新),時不時還有一兩個黑客混入其中,這種情況每個服務(wù)器都不一樣,既是是同一服務(wù)器每時每刻的變化也不一樣,因此說不具有可測性。開發(fā)者 和維護(hù)者能做的,不論是前面的這種實(shí)驗(yàn)測試,還是對具體網(wǎng)站進(jìn)行的壓力測試,最多也就能模擬相當(dāng)于QQ3通過十字路口的場景。

    結(jié)束語

    本篇文章比較了Linux系統(tǒng)上多線程和多進(jìn)程的運(yùn)行效率,在實(shí)際應(yīng)用時還有其他因素的影響,比如網(wǎng)絡(luò)通訊時采用長連接還是短連接,是否采用 select、poll,java中稱為nio的機(jī)制,還有使用的編程語言,例如Java不能使用多進(jìn)程,PHP不能使用多線程,這些都可能影響到并發(fā)模 式的選型。

    最后還有兩點(diǎn)提醒:

    1. 文章中的所有實(shí)驗(yàn)數(shù)據(jù)有環(huán)境約束。
    2. 由于并行服務(wù)的不可測性,文章中的觀點(diǎn)應(yīng)該只做參考,而不要去定性。

    其實(shí)很暈的,項(xiàng)目里面線程很多,進(jìn)程就兩個,下面的底層通信一個進(jìn)程。還需多加練習(xí)。

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/zzyoucan/p/3841967.html

    總結(jié)

    以上是生活随笔為你收集整理的多线程,多进程选择(了解)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    欧美精品久久人人躁人人爽 | 麻豆91小视频 | 久久久久久不卡 | 亚洲国产中文字幕在线视频综合 | 亚洲一级特黄 | 视频二区在线 | 黄色三级免费网址 | 91麻豆网| 丁香花在线视频观看免费 | www国产精品com | 久久国产欧美日韩精品 | 日韩免费成人av | 91伊人久久大香线蕉蜜芽人口 | 国产精品18久久久久久久久久久久 | 免费国产视频 | 午夜精品久久久久久久99水蜜桃 | 六月天综合网 | 五月婷婷操 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 日韩黄视频 | 国产剧情久久 | 国产精品综合久久 | 东方av在| 中文字幕国产亚洲 | 成人黄性视频 | 午夜久草 | 日本精a在线观看 | 免费观看特级毛片 | 五月开心网| 日日久视频 | 人人插超碰 | 亚洲伦理一区 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 国产一区二区免费 | 欧美激情视频一二区 | 日韩欧美在线免费观看 | 国产韩国日本高清视频 | 激情视频二区 | 免费av在线播放 | 亚洲好视频| 人人超碰97 | 在线97 | 91丨精品丨蝌蚪丨白丝jk | 精品国产一区二区三区不卡 | 天天操天天怕 | 日韩欧美视频免费在线观看 | 久久热亚洲 | 亚洲日日日| 亚洲精品成人在线 | 六月色 | 三级在线播放视频 | 人人澡澡人人 | 丝袜精品视频 | 国产高h视频 | 亚洲国产成人在线 | 99成人免费视频 | 日韩资源在线播放 | 欧美成人精品欧美一级乱黄 | 91中文字幕在线 | 国产区免费在线 | 91成人精品视频 | 日本黄色片一区二区 | 99在线免费视频 | 黄色小说18 | 色午夜影院 | 黄色一级动作片 | 久久精品视频免费观看 | 久久国产a | 欧美一区二区三区在线 | av在线专区| 麻豆一区在线观看 | 日韩在线观看一区二区三区 | 亚洲高清免费在线 | 久久久视频在线 | 亚洲国产中文字幕在线观看 | 久久99亚洲精品久久久久 | 九九九热精品免费视频观看网站 | 一区二区三区在线免费观看 | 91资源在线视频 | 在线观看亚洲精品 | 在线观看视频h | 91看片淫黄大片在线播放 | 亚洲人成人天堂h久久 | 亚洲国产午夜视频 | 亚洲欧美国内爽妇网 | 99精品视频在线观看免费 | 亚洲va在线va天堂va偷拍 | 久久视频99| 久久激情电影 | 国产黄色精品在线观看 | 24小时日本在线www免费的 | 婷婷丁香国产 | 色婷婷综合久色 | 亚洲激色 | 久久99久久久久久 | www.成人久久| 久久综合色婷婷 | 国产成人精品综合 | 亚洲理论在线 | 日韩在线观看电影 | 国产日韩中文在线 | 国产精品女主播一区二区三区 | 九九热久久久 | 欧美成人性网 | 久草在线综合 | 精品国产电影一区二区 | 国内外激情视频 | 狠狠狠色丁香综合久久天下网 | 91视频免费国产 | 超碰在线公开免费 | 亚洲区精品视频 | 日韩中文三级 | 亚洲1区在线 | 伊人五月天婷婷 | 欧美成人手机版 | 91尤物国产尤物福利在线播放 | 欧美日韩性生活 | 欧美国产日韩激情 | 久久国产电影院 | 日本成人a| 国产一区二区高清视频 | 国产精品麻豆视频 | 中文字幕在线国产 | 在线电影日韩 | 国产精品成人国产乱 | 精品久久久久久综合 | 国产五月天婷婷 | 日韩欧美视频一区 | 九色精品免费永久在线 | 黄在线免费观看 | 国产一区欧美日韩 | 国产亚洲精品久久久久久网站 | 日韩在线三级 | 午夜精品电影一区二区在线 | 国产伦理一区 | 国产成人一区二区三区免费看 | 久久亚洲欧美日韩精品专区 | 中文字幕av影院 | 亚洲视频1 | 伊人影院在线观看 | 久久久综合香蕉尹人综合网 | www.天天射 | 99精品在线视频观看 | 国产成人亚洲在线电影 | 99久久婷婷国产一区二区三区 | 亚洲色图av | 9999免费视频 | 亚洲va男人天堂 | 久久国产欧美日韩精品 | 亚洲精品乱码久久久久 | 欧美日产在线观看 | 色操插| 在线黄色国产电影 | 摸阴视频| 欧美日韩99 | 精品中文字幕在线播放 | 久久久久久综合 | 欧美ⅹxxxxxx | 国产精品精品久久久 | 欧美精品国产综合久久 | 国产成人精品综合 | 91精品视频免费在线观看 | 亚洲综合视频在线 | 欧美在线日韩在线 | 精品一区 在线 | 久草香蕉在线 | 免费午夜视频在线观看 | 亚洲一级性 | 国产精品少妇 | 亚洲电影一区二区 | 久久久网址| 亚洲综合射 | 在线观看视频国产一区 | 国产成人亚洲在线观看 | 免费高清在线观看电视网站 | 久久涩视频 | 日本精品一区二区在线观看 | 992tv在线成人免费观看 | 欧美日韩国产亚洲乱码字幕 | 精品一区二区影视 | 久草视频网| 亚洲欧美国内爽妇网 | 亚洲成av人片一区二区梦乃 | 青青色影院 | 三级在线视频观看 | 国产精品mv在线观看 | 91资源在线 | 亚洲精品97 | 成人天堂网 | 天天综合网在线 | 国产午夜在线观看 | 国产精品麻豆三级一区视频 | 免费观看91视频 | 中文字幕丰满人伦在线 | 西西人体www444 | 精品免费久久久久久 | 久久精品国产精品亚洲精品 | 日韩精品一区二区三区视频播放 | 在线免费黄色片 | 97在线视频免费 | 97人人模人人爽人人少妇 | 日韩中文字幕a | 亚洲一区二区三区四区精品 | 免费看高清毛片 | 91丨九色丨国产丨porny精品 | 国产成人av电影在线观看 | 成人黄色在线 | 久久久久久毛片精品免费不卡 | av在线com| 久久久精品网站 | 国产黄色av影视 | 在线观看av网站 | 天天艹日日干 | 日韩在线观看网站 | 久久99国产精品免费网站 | 免费成人av电影 | 99热这里只有精品国产首页 | 五月天伊人 | 国产va精品免费观看 | 久久超碰网 | 在线国产黄色 | 激情综合网在线观看 | 欧美一区免费观看 | 国内精品久久久久久久影视简单 | 国产视频二 | 亚洲少妇天堂 | 91精品国产综合久久婷婷香蕉 | 天天色天天上天天操 | 亚洲aⅴ久久精品 | 久久久久看片 | 91尤物在线播放 | 911久久香蕉国产线看观看 | av一级片 | 日日夜夜添 | 国产色视频一区 | 91成人精品一区在线播放69 | 久久成人麻豆午夜电影 | 在线小视频国产 | 天天操操操操操操 | 欧美日韩精品免费观看 | 久久影院亚洲 | www国产亚洲精品久久网站 | 国产精品一区电影 | 中文字幕频道 | 蜜桃麻豆www久久囤产精品 | 国产自在线 | 免费人成在线观看 | 久久人人爽人人人人片 | 久久综合五月 | 久久久久久久久久久久久久电影 | 日韩欧美视频免费看 | 中文字幕精品www乱入免费视频 | 久久夜色精品国产欧美一区麻豆 | 成人在线免费观看网站 | 一区二区精品视频 | 精品一区精品二区 | 91精品成人 | 91av在线播放视频 | 不卡精品| 福利一区二区在线 | 黄a网| 国产91对白在线播 | 精品国产伦一区二区三区观看说明 | 久久久久久久久久久久电影 | 91视频传媒 | 在线综合 亚洲 欧美在线视频 | 天天综合视频在线观看 | 欧美一区二区视频97 | 99久久精品国产系列 | 色丁香色婷婷 | 亚洲1级片 | 一区二区三区免费在线 | 中文字幕在线观看视频一区二区三区 | 国产亚洲精品成人av久久ww | 天天干天天操天天 | 亚洲人成在线电影 | 中文字幕日韩精品有码视频 | 久久九九免费视频 | 成年美女黄网站色大片免费看 | 亚洲国产午夜视频 | 国产在线色视频 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 中文字幕乱码一区二区 | 97色在线视频 | 国产精品二区在线观看 | 欧美ⅹxxxxxx | 天天躁日日躁狠狠 | 亚洲精品理论 | 午夜视频在线观看一区 | 视频在线观看入口黄最新永久免费国产 | 久久国产精品一二三区 | 精品久久1 | 日本精品久久 | 深爱激情亚洲 | 欧美a√大片 | 亚洲 成人 一区 | 成人午夜免费剧场 | 久久久91精品国产一区二区三区 | 亚洲欧洲久久久 | 国产欧美综合在线观看 | 月下香电影 | 成人黄色电影在线播放 | 91在线视频观看 | 嫩模bbw搡bbbb搡bbbb| 欧美色一色| 91九色精品 | 亚洲人成在线电影 | 五月婷婷深开心 | 中文字幕在线播放第一页 | 国产又黄又爽又猛视频日本 | 天天射色综合 | 中文字幕在线免费97 | 97国产精品视频 | 深爱激情亚洲 | 欧美高清视频不卡网 | 免费在线黄网 | 麻豆久久一区二区 | 四虎国产精品永久在线国在线 | 国产在线一区观看 | 国产69精品久久久久久久久久 | 国产精品爽爽久久久久久蜜臀 | 一区二区三区在线观看中文字幕 | 国产成人精品免费在线观看 | 丁香婷婷久久久综合精品国产 | 久久精品国产一区 | 亚洲成人精品在线观看 | 中文一区二区三区在线观看 | 五月丁色 | 国产精品久久久久影视 | www.操.com| www.久久久| 日本系列中文字幕 | 国产精品一区二区三区视频免费 | 99中文在线| 国产美女永久免费 | 九七视频在线 | 国产免费叼嘿网站免费 | 亚洲男男gaygayxxxgv | 国产精品成人自产拍在线观看 | 午夜丁香视频在线观看 | 四虎国产永久在线精品 | 五月婷婷另类国产 | 久久久国产精品亚洲一区 | 在线黄色免费av | av免费看在线 | h久久| 99热国产精品 | 最近中文字幕国语免费高清6 | 五月天综合网 | 国外调教视频网站 | 色婷婷伊人 | 婷婷丁香国产 | 在线观看91av | 一二三区视频在线 | 91手机在线看片 | 亚洲国产精品500在线观看 | 日韩av手机在线看 | 亚洲精品理论 | 182午夜在线观看 | 亚洲天堂网在线视频观看 | 亚洲夜夜爽 | 最近字幕在线观看第一季 | 欧美日韩国产精品一区二区亚洲 | 99 精品 在线 | 天堂av官网| 亚洲视频 中文字幕 | 女人18毛片a级毛片一区二区 | 国产三级视频 | 免费av免费观看 | 国产日韩在线播放 | 婷婷中文字幕综合 | 国产乱码精品一区二区蜜臀 | 国产 视频 久久 | 成人啊 v | 狠狠干夜夜 | 青青啪 | 日韩av一区二区在线影视 | 91九色精品女同系列 | 国产成人99久久亚洲综合精品 | 日韩精品久久久久久中文字幕8 | 日韩在线观看一区 | 国产精品热视频 | 久草在线视频新 | 欧美日韩三区二区 | 免费看的国产视频网站 | 97电院网手机版 | 日韩欧美在线综合网 | 国产精品视频久久 | 国产精品综合久久久久久 | 黄色毛片电影 | 亚洲精品乱码久久久久久写真 | 亚洲一区视频免费观看 | 狠狠网亚洲精品 | 五月天中文字幕 | 日韩精品首页 | 久久综合久久综合九色 | 久久久免费观看完整版 | 国产成人精品亚洲精品 | 日日夜夜天天射 | 国产美女网站视频 | 久久av影院 | 中文在线字幕免费观 | 国产视频2| 九色精品免费永久在线 | 免费精品久久久 | 在线视频手机国产 | 九色精品| 日韩av电影中文字幕 | 精品国产一区二区三区久久久 | 欧美色图亚洲图片 | 狠狠干成人| 成人黄色片在线播放 | 成人av在线电影 | 欧美成人播放 | 黄色国产区 | 国产精品网在线观看 | 欧美性生活小视频 | 久久99影院| 一本一道波多野毛片中文在线 | 亚洲高清资源 | 久久精品视频播放 | 91视频免费看网站 | 91视频91色| 亚洲婷婷综合色高清在线 | 久久久综合九色合综国产精品 | 亚洲免费在线观看视频 | 免费看日韩片 | 日本在线观看中文字幕无线观看 | 久久国产精品电影 | 日韩午夜大片 | 国产精品免费在线视频 | 悠悠av资源片 | 国产视频91在线 | av资源免费观看 | 97在线公开视频 | 午夜精品福利一区二区三区蜜桃 | 国产女人18毛片水真多18精品 | 手机在线日韩视频 | 天天色天天综合 | 国产h在线播放 | 亚洲欧美国产视频 | 亚洲在线精品视频 | 91九色在线视频 | 欧美日韩性生活 | 激情小说久久 | 久久视频精品在线 | 日本中文在线观看 | 深夜视频久久 | 91视频-88av | 91视频3p| 国产精品 欧美 日韩 | 麻豆视频免费在线观看 | 午夜电影 电影 | 久久久久久久久综合 | 一级黄色视屏 | 五月天久久婷婷 | 日韩在线观看你懂的 | 国产麻豆果冻传媒在线观看 | 欧美巨大 | 日本99干网| 国产精品自产拍在线观看 | 色在线国产| 成人综合免费 | 亚洲精欧美一区二区精品 | 日韩精品一区二区在线观看 | 在线你懂 | 午夜黄色影院 | 天天综合人人 | 国产人成看黄久久久久久久久 | 国产69精品久久99不卡的观看体验 | 91精品一区二区三区蜜臀 | 日韩精品一区二区三区第95 | 中文字幕免费播放 | 性色av一区二区三区在线观看 | 9草在线| 亚洲精品在线二区 | 久久艹艹 | 免费视频资源 | 欧美日韩在线播放 | 欧美国产亚洲精品久久久8v | 日韩成片| 国产看片免费 | 久久综合五月天 | 91精品国产亚洲 | 久久艹免费 | 久久久久久久国产精品 | 欧美极品xxxxx | 天天做天天看 | 伊人狠狠干 | 色.com| 911国产精品 | 久久久亚洲精品 | 九七人人干 | 国产涩图| 中文字幕国产精品一区二区 | 欧美最猛性xxxxx亚洲精品 | 午夜精品久久久久久中宇69 | 国产精品av一区二区 | 九九九免费视频 | 国产看片 色| 国产网红在线观看 | 国产字幕av | 日本久久综合网 | 日韩视频1 | 在线观看成人一级片 | 婷婷激情av | 日韩有码在线观看视频 | 五月天婷婷在线观看视频 | 久久视频中文字幕 | 97视频免费在线观看 | 久久久久女教师免费一区 | 精品女同一区二区三区在线观看 | 99视频在线精品国自产拍免费观看 | a午夜在线| 久久国产美女视频 | av网站手机在线观看 | 午夜久久网 | 免费色黄 | 久久久色 | www五月天com | 最新国产精品久久精品 | 91香蕉视频黄 | 国产精品第一页在线 | 精品福利av | 国产一区免费视频 | 久草剧场 | 日韩欧美一区二区三区黑寡妇 | 狠狠躁日日躁狂躁夜夜躁av | 欧美日韩免费网站 | 国产免费av一区二区三区 | 久久久精选 | 欧美另类视频 | 亚洲一级黄色大片 | 天天色天天干天天 | 日韩大陆欧美高清视频区 | 亚洲欧美色婷婷 | 精品亚洲视频在线 | 丁香五月亚洲综合在线 | zzijzzij日本成熟少妇 | 亚洲春色综合另类校园电影 | 女人高潮一级片 | 天天插天天操天天干 | 亚洲国产精品500在线观看 | 精品视频在线观看 | 婷婷色五 | 最新成人av| 99re6热在线精品视频 | 成人午夜电影久久影院 | 在线观看色视频 | 免费看的毛片 | 国产精品久久久久久久婷婷 | 91精品在线播放 | 色综合久久88色综合天天免费 | 久久久官网 | www天天干com | 97在线精品| 日韩一级黄色大片 | 九九日九九操 | 国产精品久久久久久久久久久久 | 91精品国产乱码 | 中文字幕成人在线观看 | 亚洲国产成人精品在线观看 | 日韩69av| 国产在线91精品 | 婷婷狠狠操 | 欧美黑人xxxx猛性大交 | 99久久久久久 | 天天操天天摸天天爽 | 国产日韩在线视频 | 国产白浆视频 | 91网站观看 | 国产成人精品一区二区三区在线 | 欧美国产日韩一区二区三区 | 久久久影院一区二区三区 | 国产精品乱码高清在线看 | 国产手机视频 | 四虎在线观看 | 日本精品一区二区 | 国产二区免费视频 | 69欧美视频 | 免费a网址 | 在线亚洲天堂网 | 在线观看视频99 | 2023天天干 | 国产一区在线免费观看 | 狠狠黄| 欧美国产高清 | 中文字幕一区二区三区乱码在线 | 亚洲男男gaygay无套同网址 | av噜噜噜在线播放 | 亚洲欧美999 | 黄污网站在线观看 | 久久久久久国产精品亚洲78 | 国产高清不卡在线 | 九九九九九九精品 | 久久怡红院| 91麻豆免费版 | 美女视频黄在线 | 日韩综合视频在线观看 | 最近最新中文字幕 | 久草免费在线观看视频 | 国产99区 | 7777精品伊人久久久大香线蕉 | 久久久久久久久久久久99 | 三级黄免费看 | 欧美污污网站 | 麻豆视频免费版 | 韩日精品在线观看 | 国产精品麻豆欧美日韩ww | 五月天六月婷 | 日韩欧美高清不卡 | 欧美日韩国产精品一区 | 四虎在线永久免费观看 | 在线观看视频免费播放 | 日本中文字幕网 | 亚洲精品国产高清 | 国产精品va在线播放 | 久草在线免费资源站 | 久久激情电影 | 狂野欧美激情性xxxx欧美 | 91丨九色丨国产在线观看 | 天天干天天射天天爽 | 伊人久久av | 又爽又黄又刺激的视频 | 97视频资源 | 欧美日韩免费看 | www.狠狠操 | 欧美国产91| 国产高清在线观看 | 啪啪免费观看网站 | 青青河边草观看完整版高清 | 波多野结衣视频一区 | 在线观看爱爱视频 | 成人片在线播放 | 欧美一区日韩一区 | 亚洲一级电影视频 | 日韩成年视频 | 免费精品国产 | 亚洲精品在线观 | 国内外成人在线 | 伊人狠狠操 | 在线直播av| 亚洲精品动漫成人3d无尽在线 | 国产无区一区二区三麻豆 | 久久全国免费视频 | 欧美日韩二区在线 | 免费一级日韩欧美性大片 | 午夜久久久久久久久久久 | 伊人伊成久久人综合网站 | 久久综合九色综合欧美就去吻 | 色爽网站 | 人人干在线观看 | 色噜噜在线观看 | 91在线中字 | 91精品视频免费在线观看 | 丁香六月在线 | 久久网站av | 欧美夫妻生活视频 | 成人av日韩 | 国产在线更新 | 久久99国产精品视频 | 91av电影 | 欧美精品在线一区 | 国产综合精品一区二区三区 | 久久99在线| 射九九 | 亚洲黄色免费在线看 | 日韩欧美精品在线 | 日韩精品一区二区三区丰满 | 国产精品久久99综合免费观看尤物 | 日本在线精品视频 | 久久免费观看少妇a级毛片 久久久久成人免费 | 操操操日日日干干干 | 精品久久久久久综合 | 亚洲jizzjizz日本少妇 | 五月综合激情网 | 麻豆久久久 | 久久天天躁狠狠躁亚洲综合公司 | 欧美少妇bbwhd | 色综合欧洲 | 在线观看亚洲免费视频 | 国产91在线播放 | 国产精品一区二区久久精品爱微奶 | 国产在线观看你懂得 | 国内久久久 | 亚洲精品美女视频 | 99久久99热这里只有精品 | 亚洲精品高清在线 | 天天综合网国产 | 色在线免费视频 | 中文av资源站 | 手机看片| 亚洲欧美在线视频免费 | 国产最新在线观看 | 日韩精品播放 | av免费在线网站 | 日本久久电影 | 日韩三级.com| 最近中文字幕免费观看 | 欧美精品午夜 | 香蕉久草 | 欧美午夜视频在线 | 九月婷婷人人澡人人添人人爽 | 麻豆超碰 | av日韩av| 草久久精品 | 不卡电影免费在线播放一区 | 亚洲涩涩一区 | 一色av| 国产黄色精品网站 | 超碰97在线看 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久精品亚洲综合专区 | 精品国产乱子伦一区二区 | 亚洲精品国精品久久99热一 | 欧美激情视频一二三区 | 国产精品99久久久精品 | 国产精品久久久久久久久久三级 | 国产伦精品一区二区三区免费 | 欧美性超爽 | 久草视频在线新免费 | 中文字幕在线有码 | 国产麻豆精品在线观看 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 精品欧美乱码久久久久久 | 欧美日韩免费观看一区=区三区 | 天天射天天色天天干 | 在线黄频 | 欧美最猛性xxxx | 视频一区二区国产 | 亚洲国产精品va在线看 | 国产成人精品一区二区三区福利 | 久久人人97超碰精品888 | 天天操天天干天天爱 | 99欧美视频 | 在线免费看黄色 | 午夜久久福利影院 | 久久精品美女视频网站 | 91人人澡人人爽人人精品 | 中文av一区二区 | 四虎最新入口 | 国产又粗又猛又色又黄视频 | 国产成人99久久亚洲综合精品 | 91精品国产欧美一区二区成人 | 久久国产区| 在线播放 日韩专区 | 亚洲 中文字幕av | 久久永久视频 | 九九视频一区 | 亚洲天堂网在线视频观看 | 国产成人久久精品 | 国产精品成人免费精品自在线观看 | 精品1区二区 | 久久久久久久久久久久久国产精品 | 欧美精品中文字幕亚洲专区 | 亚洲色影爱久久精品 | 成人理论在线观看 | 久久久久国产精品午夜一区 | av久久久| 久久成人精品视频 | 天天操夜夜逼 | 国产小视频在线播放 | 免费亚洲精品 | av在线免费观看不卡 | 成人av一区二区在线观看 | 亚洲女欲精品久久久久久久18 | 亚洲精品国偷自产在线91正片 | 日本不卡一区二区 | 丁香五月亚洲综合在线 | 日韩av免费观看网站 | 久久视频免费在线观看 | 韩日成人av | 黄色a一级视频 | 最新真实国产在线视频 | 久久99久久精品国产 | 国产成人精品一区二区三区网站观看 | 久爱综合 | 亚洲一级电影视频 | 免费开视频| 啪嗒啪嗒免费观看完整版 | 欧洲精品一区二区 | 久久精品成人欧美大片古装 | 欧美激情在线看 | 99精品毛片 | 成人免费大片黄在线播放 | 少妇bbw搡bbbb搡bbb | 国产精品一区免费在线观看 | 欧美成人精品欧美一级乱黄 | av夜夜操| 一区二区精品在线视频 | www.午夜| 怡红院成人在线 | 一级片免费观看视频 | 激情五月看片 | 亚洲国产高清视频 | 国产精品久久久久久久久久新婚 | 国产免费黄色 | 在线播放视频一区 | 国产精品一区二区久久久 | 婷婷在线视频 | 最近中文字幕完整视频高清1 | 色综合久久久网 | 精品在线99 | 最新日韩视频在线观看 | 精品黄色在线观看 | 五月婷婷激情 | 一区二区三区av在线 | 片网站 | 最近中文字幕国语免费高清6 | 麻豆影视在线免费观看 | 98涩涩国产露脸精品国产网 | 成人免费网站在线观看 | 国产成人免费在线观看 | 精品免费视频123区 午夜久久成人 | 久久激情视频免费观看 | 午夜精品久久久久久久99婷婷 | 日韩在线色视频 | 天天做天天爱天天综合网 | 国产一级片直播 | 99视频在线看 | 久久er99热精品一区二区三区 | 亚洲精品久久视频 | 在线有码中文 | 天堂av在线网 | 91av资源在线 | 美女在线免费观看视频 | 欧美精品免费在线观看 | 一区 二区 精品 | 婷婷丁香六月 | 婷婷中文字幕综合 | 国产精品久久久一区二区 | 欧美一级性生活片 | 中文字幕一区二区三区四区在线视频 | 日日日操操 | 成人日韩av| 中文字幕av电影下载 | 亚洲天堂在线观看完整版 | 毛片无卡免费无播放器 | 国产美女精品人人做人人爽 | 国产成视频在线观看 | 热九九精品 | 久久欧美综合 | 色天天久久 | 五月天欧美精品 | 亚洲免费在线视频 | 日韩视频免费观看高清完整版在线 | 韩国av永久免费 | 久久免费av电影 | 国产精品久久久久婷婷 | 99视频精品 | 美女免费视频黄 | 欧美综合国产 | 免费黄色小网站 | 国产一区二区三区 在线 | 日本午夜在线亚洲.国产 | 国产精品美女视频网站 | 午夜久久久久久久久久影院 | 18岁免费看片 | 精品人妖videos欧美人妖 | 天天艹天天干天天 | 日本资源中文字幕在线 | 青青河边草免费直播 | 正在播放国产精品 | 最新在线你懂的 | 夜夜高潮夜夜爽国产伦精品 | www成人av| 国产高清免费在线播放 | 日本中文字幕在线播放 | 国产精品美女久久久久久久 | 99热这里只有精品在线观看 | 人人视频网站 | 亚洲黄色影院 | 91传媒91久久久 | 国产欧美高清 | 久久夜色精品国产欧美乱极品 | 久久精品一区二区国产 | 国产在线美女 | 国产精品综合在线 | 在线视频手机国产 | 四虎影视成人精品国库在线观看 | 一区二区三区在线免费播放 | 久久久久久久国产精品 | 欧美 日韩 国产 中文字幕 | 精品国产伦一区二区三区观看说明 | 亚洲国产视频在线 | 日本黄色免费电影网站 | 色婷婷 亚洲 | 日日夜夜精品网站 | 国产99在线播放 | 国产精品第二十页 | 欧美成人在线网站 | 国产精品v a免费视频 | 狠狠干狠狠久久 | 91视频91色| 91视频高清完整版 | 日韩欧美一区二区三区黑寡妇 | 麻豆网站免费观看 | 国产精品成人久久久久久久 | 成人午夜电影网站 | 黄色tv视频 | 免费色av| 欧美在线一二 | 人成午夜视频 | av在线中文| 网站免费黄色 | 91九色视频国产 | 久久色中文字幕 | 国内精品免费久久影院 | 亚洲精品黄色在线观看 | 韩日色视频 | 伊人永久在线 | 国产日产av | 六月婷操 | 狠狠干夜夜操 | 少妇bbb好爽 | 精品一区久久 | 久久成人在线 | 婷色在线 | 最新av在线网站 | 永久免费看av | 在线观看资源 | 国产成人精品999在线观看 | av免费在线观看1 | 在线黄色免费 | 在线免费观看黄网站 | 欧美韩国在线 | 国产亚洲精品综合一区91 | 久草视频在线资源站 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 五月婷丁香网 | 国产99在线播放 | 亚洲成免费| 精品在线观看国产 | 久久久久久高清 | 奇米四色影狠狠爱7777 | 久久精品久久久久电影 | 日韩一级成人av | 日本久久成人中文字幕电影 | 在线v| 亚洲精品免费视频 | 麻豆传媒视频在线 | av在线网站免费观看 | 在线视频观看国产 | 天堂在线视频中文网 | 超碰成人免费电影 | 婷婷.com| 激情五月在线视频 | 午夜丁香视频在线观看 | 亚洲,国产成人av | 国产尤物在线视频 | 在线免费观看视频 | 狠狠网站| 综合亚洲视频 | 97国产精品免费 | 欧美日韩国产成人 | 丁香花中文字幕 | 在线看日韩av | 免费观看成人网 | 久久久资源 | 亚洲天天看 | 日韩精品在线视频 | 久久精品国产亚洲 | 最近中文字幕免费 | 九九99视频 | 黄色www| 96精品在线| 国产日产精品久久久久快鸭 | 99草视频在线观看 | 最新中文字幕在线资源 | 久草a在线 | 日韩丝袜| 99这里只有精品99 | 日韩美女高潮 | 天天操欧美 | 四虎影视8848dvd | 成人精品亚洲 | 国产一区二区中文字幕 | 亚洲高清久久久 | 97电影院在线观看 | 国产精品 亚洲精品 | 日韩一区二区免费播放 | 亚洲第一区在线播放 | 欧美一级乱黄 | 久久久在线 | 国产精品综合久久久 | 成人在线观看资源 | 在线亚洲激情 | 97热久久免费频精品99 | 国产在线中文 | 在线免费观看亚洲视频 | 最近av在线 | 国产在线观看免费 | 久久99久久99精品免费看小说 | 日韩高清一区二区 | 中文字幕在线观看播放 | www.久久色| 激情网在线观看 | 特级西西444www大精品视频免费看 |