亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 新建 文本文檔.txt

?? 在windows 98/2000下
?? TXT
字號:
讀者——寫者問題



#include <stdlib.h>



#include <windows.h>



 



#include "Reader-Writer.h"



#include "Semaphore.h"



 



// 這是 Windows 下多線程工作的 P 操作



#define P(S) WaitForSingleObject(S, INFINITE)



 



// 這是 Windows 下多線程工作的 V 操作



#define V(S) ReleaseSemaphore(S, 1, NULL)



 



const int RN = 5; // 所有讀者總數



const int WN = 3; // 所有寫者總數



 



HANDLE Sdoc; // 文檔信號量——互斥量



HANDLE Sr;   // 讀者信號量——廣義信號量



 



HANDLE Scnt; // 保護 g_cntReader 的互斥量



int g_cntReader = 0; // 讀者個數計數器



 



// ##############+. Descripted By Tang Houjian [2003-9-26 20:10:49] .+##########



// |  funcname  :  JustWait ( ) 



// +  note      :  顯示一些信息,讓后等待



// |               



// +-----------------------------------------------------------------+



// |  ret val   :  void 



// |               



// +  Parameter :  



// |         [    int ] - nReader 讀者(寫者)編號,讀者>0,寫者<0



// |         [    int ] - min     操作等待的最短時間



// |         [    int ] - max     操作等待得最長時間,實際等待的時間介于兩者之間



// |         [ LPCSTR ] - info    要顯示的信息



void JustWait(int nReader, int min, int max, LPCSTR info)



// +-----------------------------------------------------------------+



{



    // 等待時間的基本量,以毫秒表示



    const int BASETIME = 1000;



 



    // 實際等待得時間



    int wait_time = 0;



    if (max==min)  // 判斷是為了避免 %0錯誤,注意取隨機值



        wait_time = min*BASETIME;



    else



        wait_time = rand()%(max*BASETIME-min*BASETIME) + min*BASETIME;



 



    // 最終顯示的信息緩沖



    char s_out[128];



 



    // 讀者大于0,寫者小于0



    if (nReader > 0)



        sprintf(s_out, "Reader [%d]: %s\n", nReader, info);



    else



        sprintf(s_out, "\tWriter [%d]: %s\n", -nReader, info);



 



    // 打印



    printf(s_out);



 



    // 然后等待



    Sleep(wait_time);



}



 



// 這是主函數



void TryReaderAndWriter()



{



    // 創建信號量      這是初值--+  +----這是最大信號量值



    //                           |  |



    Sdoc = CreateSemaphore(NULL, 1, 1, "Document");



 



    // 一次最多允許 3 個讀者讀



    Sr = CreateSemaphore(NULL, 3, 3, "ReaderNumber");



 



    // 他也是一個互斥信號量,初值為 1



    Scnt = CreateSemaphore(NULL, 1, 1, "ReaderCounterProtect");



 



    // 線程句柄



    HANDLE threads[RN+WN];



 



    // 創建讀者線程,共有 RN 個讀者



    for (int i=0; i<RN; i++)



        threads = CreateThread(0, 0, Reader, 0, 0, 0);



 



    // 創建寫者線程,共有 WN 個寫者



    for (int j=0; j<WN; j++)



        threads[j+RN] = CreateThread(0, 0, Writer, 0, 0, 0);



 



    WaitForMultipleObjects(RN+WN, threads, TRUE, INFINITE);



}



 



// 讀者線程



DWORD WINAPI Reader(LPVOID lpPara)



{



    // 注意是靜態變量,可以使每來一個讀者增加一



    static int reader_num = 1;



    int i = reader_num ++;



 



    while (1)



    {



        JustWait(i, 1, 2, "I want to Read");



       



       // 讀者未滿



        P(Sr);



       



       // 鎖定讀者計數器



        P(Scnt);



        printf("//: %d Readers in, [%d] in\n”, g_cntReader, i);



        g_cntReader ++;



       // 如果是第一個讀者



       if (g_cntReader == 1) 



       {



           JustWait(i, 1, 2, "I am NUMBER-ONE!");



           // 鎖定文檔



           P(Sdoc);



           printf("#----------[%d] <== Doc busy\n", i);



           JustWait(i, 1, 2, "I have get the document");



       }



       // 解鎖讀者計數器



        V(Scnt);



 



       // 讀ing…………



        JustWait(i, 2, 5, "I am reading...");



       



        JustWait(i, 1, 2, "I want to get out");



 



       // 鎖定讀者計數器



        P(Scnt);



        g_cntReader --;



       // 如果是最后一個



       if (g_cntReader == 0) 



       {



           JustWait(i, 1, 2, "I am the LAST-ONE!");



           printf("----------#[%d] ==> Doc free\n", i);



           // 解鎖文檔



           V(Sdoc);



       }



        printf("//: %d Readers Left, [%d] is out\n”, g_cntReader, i);



       // 解鎖讀者計數器



        V(Scnt);



       



       // 離開



        V(Sr);



 



        JustWait(i, 5, 3, "Rest^^^^^^^^^^^^");



    }



 



    return 0;



}



DWORD WINAPI Writer(LPVOID lpPara)



{



    // 注意是靜態變量,可以使每來一個寫者減去一,注意初值是負值



    static int g_cnt = -1; 



    int j = g_cnt --;



 



    while (1)



    {



        JustWait(j, 2, 4, "I want write...");



       



       // 鎖定文檔



        P(Sdoc);



        printf("\t#==========[%d] <== Doc busy\n", -j);



 



       // 寫ing……



        JustWait(j, 4, 3, "WRITING......");



 



        JustWait(j, 1, 2, "write over! Out");



        printf("\t==========#[%d] ==> Doc free\n", -j);



 



       // 解鎖文檔



        V(Sdoc);



        JustWait(j, 8, 4, "Rest~~~~~~~~~~~~~");



    }



 



    return 0;



}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩不卡| 国内不卡的二区三区中文字幕| 丝袜亚洲精品中文字幕一区| 国产尤物一区二区在线| 欧美日韩不卡在线| 亚洲视频免费在线| 成人自拍视频在线观看| 欧美大片拔萝卜| 视频在线观看一区| 91亚洲精华国产精华精华液| 久久九九久精品国产免费直播| 香蕉成人啪国产精品视频综合网| 色哟哟精品一区| 中文字幕一区二区三区不卡| 国产乱国产乱300精品| 日韩欧美电影在线| 男人操女人的视频在线观看欧美| 欧美在线视频全部完| 一色屋精品亚洲香蕉网站| 成人亚洲一区二区一| 国产视频在线观看一区二区三区 | 亚洲卡通动漫在线| 盗摄精品av一区二区三区| 久久午夜羞羞影院免费观看| 奇米色一区二区| 欧美放荡的少妇| 蜜臀精品久久久久久蜜臀 | 91国偷自产一区二区三区成为亚洲经典 | 国产福利一区二区三区视频在线 | 欧美撒尿777hd撒尿| 亚洲欧美成aⅴ人在线观看 | 伊人色综合久久天天人手人婷| 成人午夜在线播放| 国产精品成人免费| 91视频精品在这里| 一区二区三区在线观看国产| 欧美综合色免费| 亚洲国产乱码最新视频| 欧美裸体一区二区三区| 视频一区二区三区中文字幕| 6080国产精品一区二区| 久久超碰97中文字幕| 精品国产乱码久久久久久牛牛| 国产一区不卡视频| 欧美高清在线视频| 91国产免费观看| 免费高清在线一区| 国产日韩av一区| 91极品美女在线| 日本中文在线一区| 久久久久久久久久久久久夜| 99久久精品免费| 三级不卡在线观看| 2024国产精品| 色呦呦一区二区三区| 日本不卡在线视频| 中文字幕+乱码+中文字幕一区| 91在线云播放| 麻豆成人av在线| 亚洲色图欧美激情| 91精品国产综合久久久久久漫画| 国产美女视频91| 亚洲精品一卡二卡| 欧美一二三四区在线| 本田岬高潮一区二区三区| 亚洲午夜私人影院| 国产欧美日韩综合| 91精品麻豆日日躁夜夜躁| 国产精品一区二区你懂的| 亚洲欧美偷拍卡通变态| 精品久久久久久久久久久久久久久久久| 大美女一区二区三区| 日韩在线一二三区| 中文字幕在线一区二区三区| 7777精品伊人久久久大香线蕉| 夫妻av一区二区| 日韩国产欧美在线观看| 亚洲美女免费在线| 国产日韩精品久久久| 欧美一区二区在线观看| 色丁香久综合在线久综合在线观看 | 成人午夜视频在线| 水野朝阳av一区二区三区| 国产精品美女久久久久高潮| 91麻豆精品国产91久久久| 成人美女在线观看| 韩国女主播成人在线观看| 亚洲高清久久久| 亚洲色图另类专区| 欧美激情一区二区| 亚洲精品一区二区三区四区高清| 欧美三级午夜理伦三级中视频| av午夜一区麻豆| 国产白丝精品91爽爽久久| 麻豆一区二区在线| 五月激情丁香一区二区三区| 亚洲人成影院在线观看| 欧美高清在线精品一区| 久久精品欧美一区二区三区不卡 | 国产在线一区二区| 男女性色大片免费观看一区二区| 亚洲图片有声小说| 亚洲午夜三级在线| 一区二区高清免费观看影视大全| 日韩美女视频一区| 1区2区3区国产精品| 中文字幕国产一区| 亚洲国产精品传媒在线观看| 久久久99久久| 日本一区二区三区高清不卡| 久久久精品一品道一区| 2020国产成人综合网| 精品久久国产97色综合| 久久网站最新地址| 精品国产乱码91久久久久久网站| 欧美mv日韩mv国产网站app| 欧美疯狂做受xxxx富婆| 欧美一级理论片| 精品国产91久久久久久久妲己| 精品精品国产高清一毛片一天堂| 精品理论电影在线| 国产欧美日韩综合| 亚洲人一二三区| 亚洲精品国产高清久久伦理二区 | 自拍视频在线观看一区二区| 成人免费在线观看入口| 一区二区三区不卡视频| 五月激情六月综合| 久久国产三级精品| 成人不卡免费av| 色狠狠桃花综合| 日韩你懂的电影在线观看| 欧美精品一区二区三区蜜臀| 中文字幕乱码一区二区免费| 亚洲欧洲制服丝袜| 日本不卡一区二区三区| 国产成人在线视频免费播放| aa级大片欧美| 91精品国产综合久久久蜜臀粉嫩 | 日本人妖一区二区| 国产精品一二二区| 一本大道av伊人久久综合| 911国产精品| 欧美激情在线一区二区三区| 亚洲愉拍自拍另类高清精品| 九九视频精品免费| 成人性生交大片免费看视频在线| 在线精品视频免费观看| 精品国产网站在线观看| 亚洲女人的天堂| 精品一区二区免费视频| 色噜噜狠狠色综合欧洲selulu| 欧美高清一级片在线| 国产欧美日韩激情| 日韩电影免费一区| 成人黄色国产精品网站大全在线免费观看| 在线亚洲一区二区| 精品动漫一区二区三区在线观看| 日韩伦理av电影| 久久99精品久久久久| 欧美亚洲国产一区二区三区| 久久久另类综合| 午夜精品福利在线| 99re6这里只有精品视频在线观看| 欧美肥妇bbw| 亚洲免费色视频| 国产精品一区在线| 69成人精品免费视频| 亚洲精品乱码久久久久久黑人| 国产乱淫av一区二区三区| 91精品午夜视频| 亚洲精品成人a在线观看| 国产精品1区2区| 精品日韩欧美一区二区| 日韩精品福利网| 欧美亚洲一区二区三区四区| 综合欧美亚洲日本| 成人免费va视频| 国产人妖乱国产精品人妖| 久久国内精品视频| 欧美一级日韩一级| 午夜精品久久久久影视| 91福利视频网站| 亚洲免费观看高清完整版在线观看熊| 国产精品亚洲一区二区三区妖精 | 国产精品影视在线| 精品国精品国产尤物美女| 蜜桃一区二区三区四区| 欧美老肥妇做.爰bbww视频| 一区二区高清免费观看影视大全| 91亚洲国产成人精品一区二三| 中文成人综合网| 成人网在线播放| 欧美高清在线一区| 成人免费看视频| 最新高清无码专区| 色94色欧美sute亚洲13| 亚洲一卡二卡三卡四卡无卡久久| 91国在线观看| 日韩专区在线视频|