• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Linux多線程編程技術(shù)在擲骰子游戲模擬程序中的應(yīng)用

    2016-07-02 09:30:35申時(shí)全廣東科技學(xué)院計(jì)算機(jī)系廣東東莞523000
    關(guān)鍵詞:信號(hào)量鏈表點(diǎn)數(shù)

    申時(shí)全(廣東科技學(xué)院計(jì)算機(jī)系,廣東東莞523000)

    Linux多線程編程技術(shù)在擲骰子游戲模擬程序中的應(yīng)用

    申時(shí)全
    (廣東科技學(xué)院計(jì)算機(jī)系,廣東東莞523000)

    為了模擬概率事件,針對(duì)擲骰子游戲規(guī)則,應(yīng)用Linux系統(tǒng)下C語言多線程機(jī)制以及多個(gè)二值信號(hào)量以實(shí)現(xiàn)多個(gè)線程間循環(huán)同步。通過偽隨機(jī)數(shù)模擬擲骰子的點(diǎn)數(shù),設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于多線程方式模擬4人擲骰子游戲程序,并對(duì)1 000次游戲中每個(gè)游戲者獲勝的次數(shù)進(jìn)行統(tǒng)計(jì)。可以看出,在多次游戲中,每個(gè)游戲者獲勝的概率符合概率分布規(guī)律。程序運(yùn)行結(jié)果表明,利用信號(hào)量可有效實(shí)現(xiàn)多個(gè)線程間的同步與互斥,并簡化了程序結(jié)構(gòu)。

    多線程;線程同步;隨機(jī)數(shù);擲骰子游戲程序

    O 引言

    概率事件是日常生活中經(jīng)常會(huì)遇到的,如出現(xiàn)某種狀況的可能性,產(chǎn)品出現(xiàn)故障的幾率等。本文通過一個(gè)模擬擲骰子游戲程序來模擬人們?cè)谀撤N博弈規(guī)則下的獲勝概率。采用線程編程模式,用一個(gè)線程模擬一個(gè)游戲者擲下6個(gè)骰子,并按一定規(guī)則給出“叫點(diǎn)”數(shù)。通過1 000次游戲,統(tǒng)計(jì)出每個(gè)游戲者獲勝次數(shù)N,則獲勝概率為N/1 000。

    線程是Linux系統(tǒng)的一個(gè)執(zhí)行序列,其處于進(jìn)程中,多個(gè)線程共享同一進(jìn)程的存儲(chǔ)空間和資源。操作系統(tǒng)以進(jìn)程為單位分配資源并進(jìn)行調(diào)度。但在多進(jìn)程并發(fā)運(yùn)行的系統(tǒng)中,進(jìn)程調(diào)度開銷比較大[1]。按一般定義:線程是一個(gè)進(jìn)程內(nèi)部的一個(gè)控制序列。在一個(gè)進(jìn)程中創(chuàng)建新的線程運(yùn)行時(shí),該線程會(huì)擁有自己的運(yùn)行棧,并與創(chuàng)建它的線程共享全局變量等系統(tǒng)資源。一個(gè)進(jìn)程中的多個(gè)線程可以處于并發(fā)運(yùn)行狀態(tài)。因此,要使得一個(gè)進(jìn)程中多個(gè)線程有序地工作,并有效地共享資源,就需要在線程之間進(jìn)行有效的同步和互斥控制[2]。Linux系統(tǒng)提供了多種手段實(shí)現(xiàn)進(jìn)程間、線程間的同步和互斥。本文介紹Linux系統(tǒng)下進(jìn)行多線程編程中線程創(chuàng)建、線程掛起、線程同步和互斥等有關(guān)問題,設(shè)計(jì)了一個(gè)模擬4人進(jìn)行擲骰子游戲的程序,說明了多線程編程中的同步與互斥編程技術(shù)。

    為了實(shí)現(xiàn)游戲中擲骰子點(diǎn)數(shù)的隨機(jī)性,需要用到偽隨機(jī)數(shù)生成函數(shù)。偽隨機(jī)數(shù)在很多領(lǐng)域中都有應(yīng)用[3]。通過C標(biāo)準(zhǔn)庫中隨機(jī)函數(shù)rand()及相關(guān)函數(shù)的應(yīng)用,給出解決指定范圍隨機(jī)整數(shù)生成通用方法。

    通過指定一個(gè)較大的游戲次數(shù)(如1 000),可以統(tǒng)計(jì)出各游戲者獲勝概率,按照隨機(jī)數(shù)的出現(xiàn)概率,則每個(gè)游戲者獲勝次數(shù)相差不會(huì)太大(當(dāng)然也會(huì)有例外)。

    1 Linux多線程編程中的幾個(gè)主要函數(shù)

    在Linux系統(tǒng)中,線程系統(tǒng)調(diào)用函數(shù)定義在Pthread.h中[2]。因此在程序中應(yīng)有如下指令:

    #inc1ude

    1.1 與線程編程相關(guān)的幾個(gè)常用函數(shù)

    1.1.1 線程創(chuàng)建函數(shù)

    建立線程的函數(shù)Pthread_create(),函數(shù)原型定義為:

    int Pthread_create(Pthread_t*tid,const Pthread_attr_t*attr,void *(*start_rtn)(void),void *arg);

    參數(shù)tid是一個(gè)指向Pthread_t類型指針,如果創(chuàng)建線程成功,則在該指針?biāo)缸兞恐袑懭刖€程的標(biāo)識(shí)符(ID號(hào));參數(shù)attr是指向線程屬性的結(jié)構(gòu)體指針,一般無需設(shè)定,只要設(shè)置為NULL即可;參數(shù)start_rtn用來傳遞一個(gè)函數(shù)地址,該函數(shù)應(yīng)返回一個(gè)任意類型指針,該參數(shù)用一個(gè)定義了的函數(shù)名設(shè)置即可;參數(shù)arg是傳遞給函數(shù)的參數(shù)指針,可以為任何類型。

    1.1.2 線程退出函數(shù)

    線程退出函數(shù)原型定義為:

    void Pthread_exit(void *retva1);

    通過調(diào)用該函數(shù)終止線程執(zhí)行,返回一個(gè)指向某對(duì)象的指針(注意不能用于返回指向局部變量的指針)。

    1.1.3 使線程掛起的函數(shù)

    函數(shù)原型定義為:

    int Pthread_join(Pthread_t thread,void **thread_rtn);

    參數(shù)thread指定要等待的線程;參數(shù)thread_rtn是一個(gè)指針,指向另一個(gè)指針,該指針指向線程返回值。

    1.1.4 獲得本線程lD的函數(shù)

    函數(shù)原型定義為:

    Pthread_t Pthread_se1f(void);

    通過調(diào)用該函數(shù),可獲得當(dāng)前執(zhí)行的線程標(biāo)識(shí)符(ID號(hào))。

    1.1.5 判斷兩個(gè)線程是否為同一線程的函數(shù)

    函數(shù)原型定義為:

    int Pthread_equa1(Pthread_t Pid1,Pthread_t Pid2);

    1.2 線程同步與互斥的幾個(gè)函數(shù)

    在Linux系統(tǒng)中,有關(guān)進(jìn)程、線程同步與互斥的手段有多種,這里只涉及有關(guān)的信號(hào)量函數(shù)[4]。信號(hào)量類型sem_t及相關(guān)函數(shù)定義在semaPhore.h中,因此在程序頭部應(yīng)包含#inc1ude指令。

    1.2.1 創(chuàng)建信號(hào)量函數(shù)sem_init()

    函數(shù)原型定義:

    int sem_init(sem_t*sem,int Pshared,unsigned inti va1ue);

    該函數(shù)初始化一個(gè)信號(hào)量,參數(shù)sem是指向信號(hào)量的指針;參數(shù)Pshared為0指示該信號(hào)量是當(dāng)前進(jìn)程的局部信號(hào)量,在線程編程中,該參數(shù)置為0;參數(shù)va1ue是信號(hào)量的值。

    1.2.2 控制信號(hào)量的函數(shù)

    函數(shù)原型定義如下:

    int sem_wait(sem_t*sem);int sem_Post(sem_t*sem);

    這兩個(gè)函數(shù)分別對(duì)信號(hào)量sem執(zhí)行P操作和V操作。兩個(gè)函數(shù)的參數(shù)都是一個(gè)sem_t類型指針,指向由sem_init調(diào)用初始化的信號(hào)量。

    1.2.3 銷毀信號(hào)量函數(shù)

    函數(shù)原型定義為:

    int sem_destroy(sem_t*sem);

    用完一個(gè)信號(hào)量后應(yīng)銷毀該信號(hào)量,并清理相關(guān)資源。該函數(shù)以一個(gè)信號(hào)量指針為參數(shù),清理該信號(hào)量擁有的所有資源并銷毀這個(gè)信號(hào)量。

    2 擲骰子游戲模擬程序設(shè)計(jì)技術(shù)

    2.1 游戲規(guī)則定義

    假定有4個(gè)游戲參與者,每人輪流擲下5個(gè)骰子,然后找出點(diǎn)數(shù)相同最多的點(diǎn)數(shù),例如5個(gè)骰子中,出現(xiàn)最多的是3個(gè)4點(diǎn),那就給出一個(gè)“叫點(diǎn)數(shù)”,這個(gè)叫點(diǎn)數(shù)就是出現(xiàn)相同點(diǎn)數(shù)最多的個(gè)數(shù)加1及點(diǎn)數(shù),如3個(gè)4點(diǎn),則“叫點(diǎn)數(shù)”為(4,4)。規(guī)定所有1點(diǎn)可以代替其他任意點(diǎn)數(shù),如有2個(gè)1點(diǎn),3個(gè)3點(diǎn),則可叫5個(gè)3點(diǎn)。最后總點(diǎn)數(shù)(個(gè)數(shù)乘點(diǎn)數(shù))最大者為獲勝者,若在一輪游戲中,有2個(gè)以上具有相同點(diǎn)數(shù)(最大),則多人同時(shí)獲勝,其余游戲者為失敗。這個(gè)規(guī)則由程序模擬,與實(shí)際游戲中規(guī)則有些不同。

    2.2 程序功能定義

    該模擬程序應(yīng)先輸入游戲者姓名,然后在屏幕上開列4個(gè)顯示窗口,用于顯示每個(gè)游戲者的點(diǎn)數(shù)分布(5個(gè))、叫點(diǎn)數(shù)、總盤數(shù)、獲勝計(jì)數(shù)值。

    2.3 程序?qū)崿F(xiàn)技術(shù)

    為了使用戶界面良好,使用Linux系統(tǒng)庫curses支持,使用該庫中的輸出函數(shù)實(shí)現(xiàn)窗口數(shù)據(jù)輸出。另外需要用到如下技術(shù):

    (1)鏈表技術(shù)

    在許多情況下,使用循環(huán)鏈表作為數(shù)據(jù)存儲(chǔ)便于程序訪問[5]。用一個(gè)單向循環(huán)鏈表存儲(chǔ)游戲用戶的數(shù)據(jù),定義節(jié)點(diǎn)結(jié)構(gòu)如下:

    tyPedef struct UserNode{

    char name[21]; //用戶名字

    int count; //累計(jì)次數(shù)

    int score[MAX_NUM]; //存放每次點(diǎn)數(shù)

    int win_count; //累計(jì)獲勝次數(shù)

    Struct UserNode *next;}Node_tyPe;

    把4個(gè)游戲者用戶節(jié)點(diǎn)組成一個(gè)帶頭節(jié)點(diǎn)的循環(huán)鏈表結(jié)構(gòu),如圖1所示。

    圖1 游戲者用戶鏈表

    (2)安全輸入技術(shù)

    為了輸入用戶名,且必須在指定屏幕位置輸入,用戶輸入時(shí)不能超過限定字符個(gè)數(shù)(例如20),否則會(huì)出現(xiàn)運(yùn)行錯(cuò)誤。因此不能使用常規(guī)標(biāo)準(zhǔn)庫函數(shù)gets()輸入,而是另外編寫一個(gè)函數(shù)GetString(char*str,int 1en)來實(shí)現(xiàn)。該函數(shù)中,通過調(diào)用Linux系統(tǒng)無回顯字符輸入函數(shù)getch()讀取字符,并排除非法字符,限制輸入字符數(shù)小于或等于參數(shù)1en。其源程序?qū)崿F(xiàn)限于篇幅不再贅述。

    (3)輸入游戲者姓名創(chuàng)建用戶鏈表結(jié)構(gòu)

    程序中定義一個(gè)用于建立鏈表的函數(shù)Node_tyPe* creat_List(int n),這個(gè)函數(shù)建立具有n個(gè)用戶節(jié)點(diǎn)的循環(huán)鏈表,返回鏈表頭指針。該函數(shù)調(diào)用前面給出的函數(shù)Get-String()輸入游戲者姓名。

    (4)生成隨機(jī)數(shù)問題

    在C語言的標(biāo)準(zhǔn)庫中定義了隨機(jī)數(shù)生成函數(shù)rand(),用于生成0~RAND_MAX的整數(shù)。程序采用單向函數(shù)反復(fù)迭代,周期性地輸出偽隨機(jī)序列[3]。一般,如果要生成一個(gè)給定范圍(例如1~9)的隨機(jī)數(shù),都會(huì)使用如下語句:

    rnd_num=rand()%9 +1;

    這樣不符合隨機(jī)分布原則。為了防止運(yùn)行程序每次產(chǎn)生的都是同一隨機(jī)數(shù)列,有必要初始化隨機(jī)種子。使用srand((int)time(NULL))來將偽隨機(jī)數(shù)生成器初始化為某一個(gè)不可預(yù)測(cè)點(diǎn),在程序初始化時(shí)執(zhí)行。

    下面給出一個(gè)用于產(chǎn)生給定范圍的隨機(jī)數(shù)函數(shù)。

    int Random Int(int 1ow,int high){

    int rnd; doub1e d;

    d =(doub1e)rand()/((doub1e)RAND_MAX+1);

    rnd =(int)(d*(high -1ow+1));

    return rnd;

    (5)多窗口顯示技術(shù)

    為了在每個(gè)獨(dú)立窗口顯示一個(gè)游戲用戶線程狀態(tài)數(shù)據(jù),需要用到Linux中curses庫,該庫支持頭文件curses.h。支持窗口顯示的有關(guān)函數(shù)定義在這個(gè)頭文件中。下面列出幾個(gè)相關(guān)函數(shù):

    創(chuàng)建窗口函數(shù),函數(shù)原型:

    W INDOW *newwin(int 1ine,int co1s,int start_y,int start_x);

    在窗口指定位置進(jìn)行格式化輸出,函數(shù)原型:

    intmvwPrintw(W INDOW *win,int row,int co1,char*format,…);

    限于篇幅,其他函數(shù)不再列出。

    (6)如何解決程序中線程同步和互斥問題

    整個(gè)游戲程序由4個(gè)游戲者用戶線程和一個(gè)主線程構(gòu)成。主線程和4個(gè)游戲者用戶線程的關(guān)系是:主線程做好初始化工作,創(chuàng)建4個(gè)游戲者線程,然后做好初始準(zhǔn)備,進(jìn)入游戲循環(huán)控制。因?yàn)橛螒蛘呔€程一旦創(chuàng)建就會(huì)開始執(zhí)行,所以必須處理好主線程與各個(gè)游戲用戶線程之間的同步關(guān)系。每個(gè)線程用2個(gè)信號(hào)量實(shí)現(xiàn)同步,通過參數(shù)傳遞方式將信號(hào)量傳到線程中,程序中設(shè)置5個(gè)共享的sem _t信號(hào)量。同步順序關(guān)系如圖2所示。

    圖2 各線程間的同步關(guān)系

    對(duì)于多線程程序,每個(gè)線程都可并發(fā)運(yùn)行,但對(duì)于訪問共享數(shù)據(jù)必須是互斥訪問,即滿足互斥關(guān)系[6]。使用一個(gè)互斥信號(hào)量實(shí)現(xiàn)共享數(shù)據(jù)的互斥訪問。主線程必須使第一個(gè)游戲者線程正確進(jìn)入,然后是第二個(gè)、第三個(gè)、第四個(gè)游戲者線程執(zhí)行,產(chǎn)生游戲數(shù)據(jù)并修改了狀態(tài)數(shù)據(jù)后,主線程處理結(jié)果數(shù)據(jù),判定每個(gè)游戲者勝負(fù),修改其獲勝統(tǒng)計(jì)值,然后進(jìn)入下一輪游戲。通過共享一個(gè)全局工作指針work實(shí)現(xiàn)節(jié)點(diǎn)數(shù)據(jù)修改。

    3 程序?qū)崿F(xiàn)

    對(duì)于4個(gè)游戲者線程的實(shí)現(xiàn),可以分別實(shí)現(xiàn)4個(gè)線程控制序列,即定義4個(gè)線程函數(shù)。由于每個(gè)線程行為是一致的,可以在創(chuàng)建線程時(shí)傳遞一個(gè)變量i的指針給線程實(shí)現(xiàn)同步。

    創(chuàng)建線程語句:

    Pthread_crete(&Pid[i-1],NULL,gamer,(void *)&i);

    在屏幕上實(shí)現(xiàn)多窗口顯示效果,顯示游戲者狀態(tài)數(shù)據(jù),程序中模擬4個(gè)游戲者輪流擲骰子MAX_NUM(最多1 000)次,線程負(fù)責(zé)生成5個(gè)隨機(jī)數(shù)(1~6)表示擲下5個(gè)骰子。用一個(gè)全局指針變量work指向每個(gè)線程的信息節(jié)點(diǎn)。一輪游戲結(jié)束,work指針指向頭節(jié)點(diǎn),主線程則在處理一輪游戲的勝負(fù)決斷后,將work指向首節(jié)點(diǎn),開始下一輪游戲。主線程程序結(jié)構(gòu)如圖3所示,游戲者線程程序結(jié)構(gòu)如圖4所示。

    圖3 主線程程序結(jié)構(gòu)

    圖4 游戲者線程程序結(jié)構(gòu)

    運(yùn)行這個(gè)程序需要用到curses庫和Pthread庫,編譯時(shí)使用選項(xiàng)-1Pthread-1curses。經(jīng)過程序運(yùn)行,表明采用的同步控制方法是有效的,獲得了預(yù)期效果。表1所示為其中一組運(yùn)行結(jié)果。

    表1 程序運(yùn)行結(jié)果

    4 結(jié)論

    模擬4人進(jìn)行擲骰子游戲的多線程游戲程序驗(yàn)證了隨機(jī)數(shù)的統(tǒng)計(jì)性能,也說明了多線程編程方法的可行性。通過多線程編程可以很好地解決并發(fā)性問題[6]。本文給出的模擬程序工作模式,對(duì)于具有多個(gè)循環(huán)控制對(duì)象的系統(tǒng)的應(yīng)用編程具有參考價(jià)值[7],只要將相關(guān)操作語句更換成循環(huán)控制節(jié)點(diǎn)對(duì)象的控制(測(cè)量)操作即可,其程序采用的多線程同步方法是通用的[8]。另外,如果將此程序移植到網(wǎng)絡(luò)模式,每個(gè)線程改為與實(shí)際游戲者進(jìn)行通信的程序語句方式,就可以實(shí)現(xiàn)網(wǎng)絡(luò)下的游戲程序,可以把叫點(diǎn)過程改為接收遠(yuǎn)程游戲者輸入的叫點(diǎn)數(shù)。當(dāng)然,要實(shí)現(xiàn)網(wǎng)絡(luò)模式下的游戲程序還有許多工作要做。在具有多核處理器情況下采用多線程編程將會(huì)獲得更高的運(yùn)行效率。

    [1]何宏宇,劉正熙,陳正茂.基于Linux的多進(jìn)程MDSL研究與設(shè)計(jì)[J].四川大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,50(1):46-50.

    [2]劉金,胡創(chuàng),胡明,等.多線程環(huán)境下基于多預(yù)取點(diǎn)的文件預(yù)?。跩].計(jì)算機(jī)應(yīng)用,2012,32(6):1713-1716,1720.

    [3]高樹靜,曲英杰,宋廷強(qiáng).基于單向函數(shù)的偽隨機(jī)數(shù)發(fā)生器[J].計(jì)算機(jī)研究與發(fā)展,2015,52(6):1394-1399.

    [4]彭玉柱.基于多線程機(jī)制的電力數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(1):78-81.

    [5]何先波,李明東,王錦,等.Linux操作系統(tǒng)中通用雙向循環(huán)鏈表的實(shí)現(xiàn)分析[J].西華師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,33(2):213-217.

    [6]謝文斌,陳學(xué)適,姜忠鼎.并行繪制游戲系統(tǒng)中同步傳輸協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(10):99-103.

    [7]趙源,姜小峰.基于多線程技術(shù)的自動(dòng)測(cè)試系統(tǒng)優(yōu)化設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2014,34(7):2124-2128.

    [8]吳宇佳,浦偉,周妍,等.Linux下多線程數(shù)據(jù)采集研究與實(shí)現(xiàn)[J].信息安全與通信保密,2012(7):92-94.

    APP1ication of Linux mu1ti thread Programming techno1ogy in the simu1ation Program of dice game

    Shen Shiquan
    (DePartment of ComPuter,Guangdong University of Science&Techno1ogy,Dongguan 523000,China)

    In order to simu1ate the Probabi1ity events,according to the ru1e of dice game,themu1ti thread mechanism in the C 1anguage under Linux system,and the mu1tiP1e two va1ue semaPhore are aPP1ied to rea1ize cyc1e synchronous among mu1tiP1e threads.The Program simu1ating 4 PeoP1e dice game,which is based on mu1ti thread mode1,is designed and imP1emented.Each P1ayer's winning numbers in 1 000 rounds of the game are ca1cu1ated through simu1ating the Points of the dice with Pseudo random number.As can be seen in the game,each P1ayer has simi1ar winning Probabi1ity in most cases.The resu1ts show that using semaPhores can effective1y achieve synchronization and mutua1exc1usion among mu1tiP1e threads,and can simP1ify the Program structure.

    mu1ti thread;thread synchronous;random number;dice game Program

    TP311.1

    A

    10.19358 /j.issn.1674-7720.2016.09.025

    申時(shí)全.Linux多線程編程技術(shù)在擲骰子游戲模擬程序中的應(yīng)用[J].微型機(jī)與應(yīng)用,2016,35(9):85-88.

    2016-01-14)

    申時(shí)全(1953 -),男,本科,教授,主要研究方向:計(jì)算機(jī)應(yīng)用、軟件設(shè)計(jì)技術(shù)。

    猜你喜歡
    信號(hào)量鏈表點(diǎn)數(shù)
    基于STM32的mbedOS信號(hào)量調(diào)度機(jī)制剖析
    基于二進(jìn)制鏈表的粗糙集屬性約簡
    跟麥咭學(xué)編程
    Nucleus PLUS操作系統(tǒng)信號(hào)量機(jī)制的研究與測(cè)試
    基于鏈表多分支路徑樹的云存儲(chǔ)數(shù)據(jù)完整性驗(yàn)證機(jī)制
    看不到的總點(diǎn)數(shù)
    畫點(diǎn)數(shù)
    破解“心靈感應(yīng)”
    多核并行的大點(diǎn)數(shù)FFT、IFFT設(shè)計(jì)
    鏈表方式集中器抄表的設(shè)計(jì)
    尾随美女入室| 亚洲精品国产av蜜桃| 欧美日韩国产mv在线观看视频| 亚洲精品成人av观看孕妇| 叶爱在线成人免费视频播放| 天天操日日干夜夜撸| 久久免费观看电影| 老鸭窝网址在线观看| 亚洲av国产av综合av卡| 超色免费av| 性少妇av在线| 黄色怎么调成土黄色| 黄片播放在线免费| 精品少妇久久久久久888优播| 中文字幕最新亚洲高清| 亚洲av电影在线观看一区二区三区| 黄色怎么调成土黄色| 女人爽到高潮嗷嗷叫在线视频| 五月天丁香电影| 在线观看www视频免费| 乱人伦中国视频| 久久狼人影院| 人人妻人人爽人人添夜夜欢视频| 看免费成人av毛片| 色94色欧美一区二区| 最近最新中文字幕大全免费视频 | 国产人伦9x9x在线观看| 老司机午夜十八禁免费视频| 国产免费福利视频在线观看| 亚洲中文av在线| av网站免费在线观看视频| 最近最新中文字幕大全免费视频 | 亚洲欧美清纯卡通| 国产精品99久久99久久久不卡| 黄网站色视频无遮挡免费观看| 悠悠久久av| 久久精品人人爽人人爽视色| 女人被躁到高潮嗷嗷叫费观| 精品亚洲成国产av| 肉色欧美久久久久久久蜜桃| 各种免费的搞黄视频| 亚洲国产欧美网| 18禁观看日本| 日韩,欧美,国产一区二区三区| 一区二区三区精品91| www.熟女人妻精品国产| 久久久精品区二区三区| 精品人妻熟女毛片av久久网站| 只有这里有精品99| 啦啦啦在线免费观看视频4| 国产无遮挡羞羞视频在线观看| 1024香蕉在线观看| 国产精品一国产av| 中文字幕av电影在线播放| 亚洲精品国产区一区二| av有码第一页| 亚洲免费av在线视频| 好男人视频免费观看在线| 久久久久久久国产电影| 夫妻性生交免费视频一级片| 国产成人av教育| 热re99久久国产66热| 国产欧美日韩一区二区三区在线| 波野结衣二区三区在线| 精品久久蜜臀av无| 不卡av一区二区三区| 在线观看人妻少妇| 亚洲七黄色美女视频| 日韩中文字幕视频在线看片| 精品福利观看| 久久亚洲国产成人精品v| 大香蕉久久成人网| 国产成人免费无遮挡视频| 黄网站色视频无遮挡免费观看| 黄片小视频在线播放| 日韩人妻精品一区2区三区| 欧美成狂野欧美在线观看| 久久精品aⅴ一区二区三区四区| 天天躁狠狠躁夜夜躁狠狠躁| 精品视频人人做人人爽| videos熟女内射| 亚洲人成77777在线视频| 日本wwww免费看| 中文字幕高清在线视频| 无遮挡黄片免费观看| 国产成人精品久久久久久| 精品欧美一区二区三区在线| 国产精品久久久久久精品电影小说| 精品国产一区二区三区四区第35| 免费看十八禁软件| 看免费av毛片| 欧美日韩亚洲高清精品| 亚洲伊人色综图| 精品高清国产在线一区| 久久狼人影院| 乱人伦中国视频| 日韩中文字幕欧美一区二区 | 国产欧美日韩一区二区三区在线| 青春草视频在线免费观看| 自线自在国产av| av不卡在线播放| 一二三四在线观看免费中文在| 国产精品久久久人人做人人爽| 亚洲五月婷婷丁香| 精品少妇内射三级| 青春草视频在线免费观看| 久久免费观看电影| 中文字幕av电影在线播放| 人人妻,人人澡人人爽秒播 | 热re99久久国产66热| 国产亚洲av片在线观看秒播厂| 少妇裸体淫交视频免费看高清 | www.精华液| 国产黄色视频一区二区在线观看| 久久久久精品人妻al黑| 中文字幕色久视频| 国产日韩欧美视频二区| 看十八女毛片水多多多| 2018国产大陆天天弄谢| 欧美成人精品欧美一级黄| 国产精品.久久久| 国产麻豆69| 婷婷色综合www| 久久国产精品男人的天堂亚洲| 欧美在线一区亚洲| 久久久久久久精品精品| 丝袜喷水一区| 高清黄色对白视频在线免费看| 国产精品免费大片| 麻豆乱淫一区二区| 波野结衣二区三区在线| 国产高清videossex| 久久精品久久久久久久性| 日韩,欧美,国产一区二区三区| 亚洲伊人久久精品综合| 欧美成人午夜精品| 国产精品av久久久久免费| 婷婷丁香在线五月| 国产亚洲一区二区精品| 午夜福利在线免费观看网站| 亚洲精品国产一区二区精华液| 亚洲欧美激情在线| 99精国产麻豆久久婷婷| www.精华液| 国产精品久久久久久精品古装| 国产精品.久久久| 爱豆传媒免费全集在线观看| 韩国高清视频一区二区三区| 一级毛片黄色毛片免费观看视频| 亚洲国产精品一区三区| 亚洲国产精品国产精品| 最新的欧美精品一区二区| 啦啦啦中文免费视频观看日本| 黑人巨大精品欧美一区二区蜜桃| 欧美在线一区亚洲| 丝袜美足系列| kizo精华| 亚洲免费av在线视频| 亚洲精品一卡2卡三卡4卡5卡 | 久久国产精品大桥未久av| 色播在线永久视频| 丁香六月天网| a级毛片在线看网站| 黄色a级毛片大全视频| 丝瓜视频免费看黄片| 久久人妻熟女aⅴ| 制服人妻中文乱码| 三上悠亚av全集在线观看| 国产熟女欧美一区二区| 人人澡人人妻人| av天堂在线播放| 99国产精品一区二区蜜桃av | 啦啦啦 在线观看视频| 国产精品亚洲av一区麻豆| 日韩 亚洲 欧美在线| 91精品三级在线观看| 在线av久久热| 日韩中文字幕欧美一区二区 | 97人妻天天添夜夜摸| 国产精品二区激情视频| 91麻豆av在线| 黑人巨大精品欧美一区二区蜜桃| 一区二区三区精品91| 9191精品国产免费久久| 一本一本久久a久久精品综合妖精| 18禁黄网站禁片午夜丰满| 不卡av一区二区三区| 国产伦理片在线播放av一区| 黄色片一级片一级黄色片| 在现免费观看毛片| 亚洲精品美女久久av网站| 久久久久国产一级毛片高清牌| 亚洲欧美激情在线| 51午夜福利影视在线观看| 亚洲av电影在线观看一区二区三区| 黑人巨大精品欧美一区二区蜜桃| 欧美亚洲 丝袜 人妻 在线| 午夜福利视频精品| 亚洲精品一二三| 视频区图区小说| 男人爽女人下面视频在线观看| 欧美黑人欧美精品刺激| 又粗又硬又长又爽又黄的视频| 久久精品久久久久久久性| 欧美激情高清一区二区三区| 久久精品久久精品一区二区三区| 欧美97在线视频| 婷婷色综合大香蕉| 亚洲欧美中文字幕日韩二区| 国产精品九九99| av网站在线播放免费| 国产高清视频在线播放一区 | 91麻豆av在线| av天堂在线播放| 最新的欧美精品一区二区| 精品国产国语对白av| 午夜福利一区二区在线看| 国产麻豆69| 麻豆乱淫一区二区| 国产精品久久久久久人妻精品电影 | 欧美在线一区亚洲| 天天躁日日躁夜夜躁夜夜| 国产精品国产av在线观看| 少妇人妻 视频| 777久久人妻少妇嫩草av网站| 在线天堂中文资源库| 中文精品一卡2卡3卡4更新| 欧美日韩黄片免| 高清黄色对白视频在线免费看| 国精品久久久久久国模美| 男人添女人高潮全过程视频| 菩萨蛮人人尽说江南好唐韦庄| 日韩 亚洲 欧美在线| 亚洲人成77777在线视频| 国产精品一区二区在线不卡| 国产免费又黄又爽又色| 国产一区二区在线观看av| 一级黄色大片毛片| 免费高清在线观看日韩| xxxhd国产人妻xxx| 另类亚洲欧美激情| 老司机午夜十八禁免费视频| 久久久久久人人人人人| 成年人黄色毛片网站| 久久久久网色| 99国产综合亚洲精品| 青春草亚洲视频在线观看| 国产日韩欧美亚洲二区| 制服诱惑二区| 日韩中文字幕欧美一区二区 | 久久久精品区二区三区| 久久免费观看电影| 男人爽女人下面视频在线观看| 日韩熟女老妇一区二区性免费视频| 欧美中文综合在线视频| 亚洲av在线观看美女高潮| 91国产中文字幕| 免费在线观看视频国产中文字幕亚洲 | 女人久久www免费人成看片| 欧美国产精品一级二级三级| 巨乳人妻的诱惑在线观看| 国产熟女午夜一区二区三区| 亚洲三区欧美一区| 久久精品成人免费网站| 成年人午夜在线观看视频| av有码第一页| av在线播放精品| 一区二区日韩欧美中文字幕| 久久久久久亚洲精品国产蜜桃av| 亚洲图色成人| 大香蕉久久成人网| 秋霞在线观看毛片| 久久天躁狠狠躁夜夜2o2o | 久久免费观看电影| 亚洲午夜精品一区,二区,三区| 女性生殖器流出的白浆| 校园人妻丝袜中文字幕| 宅男免费午夜| 欧美国产精品一级二级三级| 国产精品香港三级国产av潘金莲 | 国产精品香港三级国产av潘金莲 | 国产精品国产av在线观看| 爱豆传媒免费全集在线观看| 国产亚洲精品第一综合不卡| 国产成人91sexporn| 超碰97精品在线观看| 欧美精品一区二区大全| 超碰成人久久| 叶爱在线成人免费视频播放| 99九九在线精品视频| 国产在线视频一区二区| 亚洲情色 制服丝袜| 波多野结衣av一区二区av| 观看av在线不卡| 午夜两性在线视频| 汤姆久久久久久久影院中文字幕| 不卡av一区二区三区| 精品久久久久久久毛片微露脸 | 一本久久精品| 90打野战视频偷拍视频| 国精品久久久久久国模美| 亚洲,欧美精品.| 一级片'在线观看视频| 国产在线一区二区三区精| 成年人黄色毛片网站| 久热爱精品视频在线9| 黄频高清免费视频| 美国免费a级毛片| 岛国毛片在线播放| 日日摸夜夜添夜夜爱| 亚洲精品一二三| 亚洲欧洲日产国产| 精品视频人人做人人爽| 爱豆传媒免费全集在线观看| 国产成人系列免费观看| 狂野欧美激情性xxxx| 自线自在国产av| 欧美少妇被猛烈插入视频| 在线观看一区二区三区激情| 精品久久久久久电影网| 日韩制服丝袜自拍偷拍| 制服诱惑二区| 晚上一个人看的免费电影| 国产精品偷伦视频观看了| 精品福利观看| cao死你这个sao货| 成年人午夜在线观看视频| 狠狠婷婷综合久久久久久88av| 免费一级毛片在线播放高清视频 | 国产日韩欧美在线精品| 18禁裸乳无遮挡动漫免费视频| 人人妻,人人澡人人爽秒播 | 欧美日韩亚洲高清精品| 精品熟女少妇八av免费久了| 晚上一个人看的免费电影| 香蕉国产在线看| 黄色视频在线播放观看不卡| 亚洲av欧美aⅴ国产| 夜夜骑夜夜射夜夜干| 看十八女毛片水多多多| 色播在线永久视频| 精品国产一区二区三区久久久樱花| 日日爽夜夜爽网站| 国产在线免费精品| 男男h啪啪无遮挡| 日韩,欧美,国产一区二区三区| 人人妻人人添人人爽欧美一区卜| 人人妻人人爽人人添夜夜欢视频| 黄色怎么调成土黄色| 亚洲,欧美,日韩| 黑人欧美特级aaaaaa片| 人妻一区二区av| 亚洲精品国产色婷婷电影| av视频免费观看在线观看| 国产男人的电影天堂91| 美女午夜性视频免费| 操美女的视频在线观看| 免费黄频网站在线观看国产| 中文精品一卡2卡3卡4更新| 亚洲欧美色中文字幕在线| 亚洲精品乱久久久久久| 国产在线观看jvid| 国产男人的电影天堂91| 欧美黑人精品巨大| 久久午夜综合久久蜜桃| 91精品三级在线观看| 日本av手机在线免费观看| 免费在线观看完整版高清| 亚洲欧洲精品一区二区精品久久久| 国产精品香港三级国产av潘金莲 | 91精品三级在线观看| 午夜免费鲁丝| 啦啦啦 在线观看视频| 国精品久久久久久国模美| 国产欧美亚洲国产| 真人做人爱边吃奶动态| 最近中文字幕2019免费版| 一级毛片我不卡| 国产熟女欧美一区二区| 久久久久网色| 亚洲av国产av综合av卡| 亚洲av综合色区一区| 日本色播在线视频| 在线亚洲精品国产二区图片欧美| 又大又黄又爽视频免费| 亚洲伊人色综图| 色婷婷av一区二区三区视频| 国产野战对白在线观看| 国产一区亚洲一区在线观看| 国产主播在线观看一区二区 | 日韩,欧美,国产一区二区三区| 亚洲色图综合在线观看| 女人久久www免费人成看片| 亚洲中文日韩欧美视频| 黑丝袜美女国产一区| 国产免费一区二区三区四区乱码| 叶爱在线成人免费视频播放| 亚洲精品日本国产第一区| 男女免费视频国产| 精品福利观看| 在线观看免费日韩欧美大片| 免费在线观看影片大全网站 | 久久久精品区二区三区| 在线观看免费午夜福利视频| 男女午夜视频在线观看| 高清av免费在线| 80岁老熟妇乱子伦牲交| 精品一区二区三区av网在线观看 | 久久久精品区二区三区| 日韩伦理黄色片| 天天躁夜夜躁狠狠躁躁| 国产精品亚洲av一区麻豆| 美女午夜性视频免费| 欧美国产精品一级二级三级| 人人妻人人爽人人添夜夜欢视频| 国产免费视频播放在线视频| 免费观看人在逋| av不卡在线播放| 伊人亚洲综合成人网| 亚洲精品一卡2卡三卡4卡5卡 | 人人妻人人澡人人看| 十八禁高潮呻吟视频| 成人国产av品久久久| 国产精品熟女久久久久浪| 天堂中文最新版在线下载| 国产精品久久久久久精品电影小说| 久久天躁狠狠躁夜夜2o2o | 国产一区二区在线观看av| 丁香六月天网| 欧美中文综合在线视频| 人妻一区二区av| 啦啦啦视频在线资源免费观看| 成人免费观看视频高清| 日韩免费高清中文字幕av| 亚洲欧美精品自产自拍| 亚洲欧美中文字幕日韩二区| 国产精品成人在线| 亚洲精品国产av蜜桃| 操美女的视频在线观看| 亚洲精品久久成人aⅴ小说| 制服人妻中文乱码| 国产精品.久久久| 美国免费a级毛片| 男女下面插进去视频免费观看| 亚洲精品第二区| 青草久久国产| 91字幕亚洲| 久久久久久亚洲精品国产蜜桃av| 久热这里只有精品99| 两个人看的免费小视频| 色94色欧美一区二区| 老司机深夜福利视频在线观看 | 精品一区在线观看国产| 亚洲欧美日韩高清在线视频 | av视频免费观看在线观看| 人人澡人人妻人| 国产免费现黄频在线看| av不卡在线播放| 男女边摸边吃奶| 久久精品久久久久久久性| 黄色片一级片一级黄色片| 欧美av亚洲av综合av国产av| 亚洲欧洲精品一区二区精品久久久| 精品人妻熟女毛片av久久网站| 王馨瑶露胸无遮挡在线观看| 欧美精品人与动牲交sv欧美| 美女视频免费永久观看网站| 性少妇av在线| 午夜福利一区二区在线看| 亚洲精品久久午夜乱码| 天天添夜夜摸| 一二三四在线观看免费中文在| 如日韩欧美国产精品一区二区三区| 黑人巨大精品欧美一区二区蜜桃| 久久久国产一区二区| 欧美激情 高清一区二区三区| 啦啦啦中文免费视频观看日本| 美女脱内裤让男人舔精品视频| 久久久久网色| 亚洲熟女精品中文字幕| 国产亚洲精品第一综合不卡| 久久久久精品国产欧美久久久 | 精品国产乱码久久久久久男人| 午夜激情av网站| 男人操女人黄网站| 久久久国产欧美日韩av| 制服人妻中文乱码| 夫妻性生交免费视频一级片| 777久久人妻少妇嫩草av网站| 成人黄色视频免费在线看| 亚洲少妇的诱惑av| 精品一区在线观看国产| 看十八女毛片水多多多| 丝袜脚勾引网站| 久久性视频一级片| 涩涩av久久男人的天堂| 成人影院久久| 久久国产精品大桥未久av| 97人妻天天添夜夜摸| 国产熟女午夜一区二区三区| 国产成人系列免费观看| 人人澡人人妻人| 美女脱内裤让男人舔精品视频| 亚洲精品一卡2卡三卡4卡5卡 | 日韩中文字幕欧美一区二区 | 久久精品aⅴ一区二区三区四区| 校园人妻丝袜中文字幕| 性色av乱码一区二区三区2| 亚洲精品第二区| 亚洲欧洲国产日韩| 美女中出高潮动态图| 日本av手机在线免费观看| 中文字幕另类日韩欧美亚洲嫩草| 秋霞在线观看毛片| 老司机午夜十八禁免费视频| 热99久久久久精品小说推荐| 好男人视频免费观看在线| 电影成人av| 狠狠精品人妻久久久久久综合| 少妇的丰满在线观看| 1024香蕉在线观看| 丰满少妇做爰视频| 麻豆av在线久日| 丝瓜视频免费看黄片| 夫妻午夜视频| 午夜福利免费观看在线| 亚洲欧美中文字幕日韩二区| 日韩伦理黄色片| 日韩电影二区| 久久99热这里只频精品6学生| 成年美女黄网站色视频大全免费| 妹子高潮喷水视频| 一级毛片 在线播放| 另类亚洲欧美激情| av国产久精品久网站免费入址| 美女大奶头黄色视频| 女人被躁到高潮嗷嗷叫费观| 熟女少妇亚洲综合色aaa.| 99re6热这里在线精品视频| 一本综合久久免费| 亚洲人成电影观看| 亚洲国产精品国产精品| 中国国产av一级| 国产熟女欧美一区二区| 热re99久久精品国产66热6| 一本—道久久a久久精品蜜桃钙片| 免费在线观看完整版高清| 夜夜骑夜夜射夜夜干| 两性夫妻黄色片| 国产在线观看jvid| 亚洲色图综合在线观看| 母亲3免费完整高清在线观看| 伊人久久大香线蕉亚洲五| av网站在线播放免费| 考比视频在线观看| 9色porny在线观看| 国语对白做爰xxxⅹ性视频网站| 蜜桃在线观看..| 久久综合国产亚洲精品| 深夜精品福利| 搡老乐熟女国产| 亚洲国产看品久久| 精品久久蜜臀av无| av欧美777| 久久久久精品国产欧美久久久 | 在线精品无人区一区二区三| 高清欧美精品videossex| 十八禁人妻一区二区| 极品少妇高潮喷水抽搐| 久久影院123| 叶爱在线成人免费视频播放| 亚洲av综合色区一区| 欧美日韩亚洲国产一区二区在线观看 | 又大又爽又粗| 午夜福利视频在线观看免费| 久久综合国产亚洲精品| 国产福利在线免费观看视频| 亚洲精品中文字幕在线视频| 美女扒开内裤让男人捅视频| 久久女婷五月综合色啪小说| 又紧又爽又黄一区二区| 精品国产一区二区久久| 亚洲视频免费观看视频| 免费在线观看视频国产中文字幕亚洲 | 日本wwww免费看| 欧美老熟妇乱子伦牲交| 午夜91福利影院| 亚洲色图 男人天堂 中文字幕| 日本欧美视频一区| 脱女人内裤的视频| 久久天躁狠狠躁夜夜2o2o | 国产高清videossex| 你懂的网址亚洲精品在线观看| 老司机靠b影院| 美女扒开内裤让男人捅视频| 夫妻性生交免费视频一级片| 久久久久久免费高清国产稀缺| 久久久国产一区二区| 亚洲av电影在线进入| 亚洲三区欧美一区| 成人三级做爰电影| 亚洲人成77777在线视频| 性色av一级| 亚洲国产欧美在线一区| 黄色一级大片看看| 一二三四在线观看免费中文在| 欧美黄色淫秽网站| 19禁男女啪啪无遮挡网站| 亚洲精品第二区| 大码成人一级视频| 岛国毛片在线播放| 国产精品国产三级国产专区5o| 中文字幕色久视频| 大香蕉久久网| 一区二区三区激情视频|