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

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

?? c++.txt

?? 這是一個用C++實現讀者和寫者的問題的代碼
?? 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[i] = 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一区二区三区免费野_久草精品视频
日本大胆欧美人术艺术动态| 欧美成人vr18sexvr| 激情综合色综合久久| 一区二区三区四区激情| 亚洲欧美日韩一区| 亚洲精品ww久久久久久p站| 综合自拍亚洲综合图不卡区| 国产精品你懂的在线欣赏| 亚洲国产成人在线| 亚洲同性gay激情无套| 亚洲欧洲国产日本综合| 亚洲欧美日韩一区| 亚洲大片精品永久免费| 日产欧产美韩系列久久99| 久久99国产精品久久| 国产一区二区三区美女| 成人综合婷婷国产精品久久免费| 不卡av电影在线播放| 欧美综合亚洲图片综合区| 91精品国产色综合久久不卡电影| 日韩欧美一区二区视频| 久久美女高清视频| 亚洲精品日韩专区silk| 亚洲电影在线播放| 国产精品久久久久影院| 日韩理论片中文av| 亚洲va欧美va国产va天堂影院| 日本午夜一本久久久综合| 精品伊人久久久久7777人| 国产福利91精品一区二区三区| 99国产精品国产精品毛片| 欧美色倩网站大全免费| 精品国产在天天线2019| 亚洲欧美一区二区不卡| 蜜桃精品视频在线| 成人高清视频在线观看| 欧美一级一区二区| 国产精品美女久久久久久| 天堂久久久久va久久久久| 一区二区在线免费观看| 一区二区三区在线观看网站| 蜜臀99久久精品久久久久久软件 | 欧美日韩亚洲综合| 欧美成人在线直播| 亚洲乱码日产精品bd| 九九精品视频在线看| 色欧美日韩亚洲| 久久蜜桃av一区精品变态类天堂| 亚洲国产一区二区三区青草影视 | 成人av在线一区二区三区| 欧美日韩大陆在线| 亚洲欧美自拍偷拍色图| 久久99热99| 91麻豆精品国产91久久久使用方法| 国产精品久久久久影院亚瑟 | 91小视频在线| 久久久国产一区二区三区四区小说 | 国产一区二区看久久| 欧美剧情电影在线观看完整版免费励志电影| 精品国产一区二区三区忘忧草| 一个色妞综合视频在线观看| 国产91丝袜在线观看| 久久久久成人黄色影片| 欧美日韩中文字幕一区| 欧美国产1区2区| 另类小说综合欧美亚洲| 欧美日韩高清不卡| 一级女性全黄久久生活片免费| 成人在线视频一区| 久久人人超碰精品| 国产综合久久久久影院| 日韩免费视频一区二区| 老司机精品视频一区二区三区| 欧美日韩国产免费一区二区| 亚洲电影在线播放| 欧美日韩中文精品| 调教+趴+乳夹+国产+精品| 欧美日韩国产综合一区二区| 一区二区三区在线观看网站| 日本韩国欧美一区二区三区| 亚洲色图制服诱惑| 在线影院国内精品| 亚洲最大成人网4388xx| 欧美日韩国产大片| 蜜臀av性久久久久蜜臀av麻豆| 日韩精品一区二区在线| 国产亚洲精品aa| 美女久久久精品| 555www色欧美视频| 日韩电影在线看| 久久日一线二线三线suv| 国产一区二区精品久久91| 久久久久久久久一| 不卡电影一区二区三区| 亚洲人成亚洲人成在线观看图片| 91麻豆精东视频| 调教+趴+乳夹+国产+精品| 日韩一区二区三区三四区视频在线观看| 日韩综合在线视频| 国产亚洲成年网址在线观看| 成人av资源站| 丝袜亚洲精品中文字幕一区| 精品乱码亚洲一区二区不卡| 成人妖精视频yjsp地址| 一区二区在线观看免费视频播放| 欧美老女人第四色| 国产精品不卡在线| 亚洲国产精品久久人人爱| 91香蕉视频污| 天天影视网天天综合色在线播放| 日韩免费看的电影| 成人自拍视频在线观看| 亚洲1区2区3区视频| 精品成人一区二区三区| 欧美综合一区二区三区| 加勒比av一区二区| 亚洲一区二区三区四区五区黄 | 国产精品88av| 一区二区激情视频| 久久精品视频免费观看| 欧美精品色一区二区三区| 粉嫩av一区二区三区| 奇米精品一区二区三区在线观看一| 国产欧美一区二区精品久导航 | 久久福利视频一区二区| 国产精品萝li| 精品国产免费一区二区三区香蕉| 一本在线高清不卡dvd| 激情综合五月天| 日日欢夜夜爽一区| 亚洲欧美日韩国产成人精品影院| 久久久蜜桃精品| 欧美一区二区在线观看| 色激情天天射综合网| 丁香啪啪综合成人亚洲小说| 久久精品国产77777蜜臀| 午夜视频一区二区| 夜夜亚洲天天久久| 亚洲欧洲综合另类在线| 国产精品护士白丝一区av| 精品国产精品一区二区夜夜嗨| 欧美精品在线视频| 欧美亚洲综合网| 欧美无人高清视频在线观看| 97精品久久久午夜一区二区三区 | 欧美成人精品福利| 欧美日本一区二区三区| 91精品福利视频| 色婷婷精品久久二区二区蜜臀av| 成人免费福利片| 国产精品一区免费在线观看| 国产一区二区在线视频| 国产麻豆视频一区二区| 国产一区二区三区在线观看免费| 久久电影网站中文字幕| 久久精品免费观看| 国内精品免费在线观看| 国产一区二区三区免费| 国产精品中文字幕一区二区三区| 国产在线精品一区二区夜色 | 国产精品视频线看| 国产精品少妇自拍| 国产精品色一区二区三区| 亚洲少妇最新在线视频| 亚洲国产视频网站| 日韩av高清在线观看| 国产自产视频一区二区三区| 国产成人小视频| 91麻豆swag| 91.com在线观看| 国产性色一区二区| 1区2区3区国产精品| 亚洲成人福利片| 久久99精品久久久久| 粗大黑人巨茎大战欧美成人| 白白色亚洲国产精品| 欧美天天综合网| 欧美成人a∨高清免费观看| 中文一区二区在线观看| 亚洲国产日韩a在线播放| 久久电影网站中文字幕 | 在线精品视频一区二区三四| 欧美亚洲愉拍一区二区| 欧美成人福利视频| 国产精品国产自产拍在线| 午夜影院久久久| 国产福利一区二区三区视频在线| 91网页版在线| 精品第一国产综合精品aⅴ| 日韩毛片高清在线播放| 蜜臀精品久久久久久蜜臀| proumb性欧美在线观看| 欧美性大战久久久| 欧美激情中文字幕一区二区| 亚洲午夜成aⅴ人片| 国产mv日韩mv欧美| 欧美一区二区二区| 亚洲色欲色欲www| 国产剧情一区二区| 午夜精品久久久久久久久|