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

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

?? 讀寫者.txt

?? 用語言實現操作系統中經典問題_讀者寫者同步算法
?? TXT
字號:
#include "windows.h"
#include <conio.h>  //屏幕操作函數的頭文件,即調用DOS控制臺I/O子程序的各個函數
#include<stdlib.h>     //說明一些常用的子程序:轉換子程序、搜索排序程序等
#include<fstream.h>   //c++輸入輸出流iostream的派生類,用于磁盤文件I/O
#include<string.h>   //說明一些字符串和內存操作函數
#include<stdio.h> //定義UNIX中標準和擴展的類型和宏,定義標準I/O預定義流,說明
//I/O流子程序
#define READER 'R'              //讀者
#define WRITER 'W'              //寫者
#define INTE PER SEC  100      //每秒時鐘中斷數目
#define MAX THREAD NUM   64      //最大線程數目
#define MAX FILE NUM     32      //最大數據文件數目
#define MAX STR LEN      32      //字符串長度

int   readcount=0;               //讀者數目
int   writecunt=0;               //寫者數目

CRITICAL SECTION  RP Write;      //臨界區
CRITICAL SECTION  cs Write;      //臨界區
CRITICAL SECTION  cs Read;       //臨界區
struct ThreadInfo
{
int     serial;                //線程序號
char    entity;               //線程類別
double  delay;                //線程延遲
double  persist;              //線程讀寫操作的持續時間
};
/////////////////////////////////////////////////////////////////////////////////////讀者優先-讀者線程
//p:讀者線程信息

void RP ReaderThread(void* p)
{
//互斥變量
HANDLE h Mutex;
h Mutex=OpenMutex(MUTEX ALL ACCESS,FALSE,"mutex for readcount");
DWORD wait for mutex;     //等待互斥變量的所有權
DWORD m delay;            //延遲時間
DWORD m persist;          //讀文件持續時間
int m serial;             //線程序號
//從參數中獲得信息
m serial =((ThreadInfo*)(p))->serial;
m delay =(DWORD)(((ThreadInfo*)(p))->delay*INTE PER SEC);
Sleep(m delay);               //延遲等待
printf("Reader thread %d sents the reading require.\n", m serial);
//等待互斥信號,保證對readcount的訪問、修改互斥
wait for mutex =WaitForSingleObject(h Mutex , -1);
if(readcount ==0) 
  EnterCriticalSection(&RP Write);
readcount++;
ReleaseMutex(h Mutex);       //釋放互斥信號
//讀文件
printf("Reader thread %d begins to read file,\n",m serial);
Sleep(m persist);            //延遲一下,滿足讀文件的持續時間
printf("Reader thread %d finished reading file.\n",m serial);
wait for mutex =WaitForSingleObject(h Mutex,-1);
readcount--;
if (readcount==0)
LeaveCriticalSection(&RP Write);
ReleaseMutex(h Mutex);
}

/////////////////////////////////////////////////////////////////////////////////////讀者優先---寫者線程
//p: 寫者線程信息
void RP WriterThread(void* p)
{
DWORD m delay;
DWORD m persist;
int m serial;
m serial=((ThreadInfo*)(p))->serial;
m delay=(DWORD)(((ThreadInfo*)(p))->delay*INTE PER SEC);
m persist=(DWORD)(((ThreadInfo*)(p))->persist*INTE PER SEC);
Sleep(m delay);
printf("writer thread %d sents the writing require.\n",m serial);
EnterCriticalSection(&RP Write);
//寫文件
printf("writer thread %d begins to write to the file .\n",m serial);
Sleep(m persist);
printf("writer thread %d finishing writing to the file.\n",m serial);
LeaveCriticalSection(&RP Write);
}


/////////////////////////////////////////////////////////////////////////////////////讀者優先處理函數
//file:文件名
void ReaderPriority(char* file)
{
DWORD n thread=0;                //線程數目
DWORD thread ID;                 //線程ID
DWORD wait for all;              //等待所有線程結束
HANDLE  h Mutex;
h Mutex=CreateMutex(NULL,FALSE,"mutex for readcount");
//線程對象數組
HANDLE h Thread[MAX THREAD NUM];
ThreadInfo thread info[MAX THREAD NUM];
readcount=0;                    //初始化readcount
InitializeCriticalSection(&RP Write);           //初始化臨界區    
ifstream inFile;
inFile.open(file);                           //打開文件
printf("reader priority:\n\n");
while(inFile)
{
//讀入每一個讀者、寫者信息
inFile>>thread info[n thread].serial;
inFile>>thread info[n thread].entity;
inFile>>thread info[n thread].delay;
inFile>>thread info[n thread++].persist;
inFile.get();
}
for (int i=0;i<(int)(n thread);i++)
{
   if(thread info[i].entity==READER||thread info[i].entity=='R')
   {   //創建讀者線程,&thread ID是輸出參數接受線程ID
    h Thread[i]=CreateThread(NULL,0,(LPTHREAD START ROUTINE)(RP ReaderThread),&thread info[i],0,&thread ID);
   }
    else{
    h Thread[i]=CreateThread(NULL,0,(LPTHREAD START ROUTINE)(RP WriterThread),&thread info[i],0,&thread ID);
   }
   
}
//等待所有線程結束
wait for all=WaitForMultipleObjects(n thread,h Thread,TRUE,-1);
printf("All reader and writer have finished operating ,\n");
}

//主函數
int main(int argc,char*argv[])
{
char ch;
while(true)
{
printf("    1:Reader priority\n");
printf("    2:Writer priority\n");
printf("    3:Exit to windows\n");
do{
   ch=(char) getch();
}while(ch!='1'&&ch!='2'&&ch!='3');
system("cls");
if(ch=='3')
return 0;
else if(ch=='1')
  ReaderPriority("thread.dat");
printf("\npress any key to continue:");
getch();
system("cls");
return 0;
}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人三级在线观看| k8久久久一区二区三区| 国产精品久久久久婷婷| 精品国内二区三区| 日韩一区二区三区四区| 欧美一级搡bbbb搡bbbb| 欧美精品自拍偷拍| 欧美一区二区精品久久911| 3d动漫精品啪啪一区二区竹菊| 欧美主播一区二区三区美女| 欧美视频日韩视频| 777久久久精品| 日韩欧美国产小视频| 日韩欧美久久久| 日韩精品中文字幕一区二区三区 | 国产精品盗摄一区二区三区| 久久久91精品国产一区二区精品| 国产亚洲综合性久久久影院| 国产精品青草久久| 综合av第一页| 亚洲丰满少妇videoshd| 日本网站在线观看一区二区三区 | 狠狠色2019综合网| 国产河南妇女毛片精品久久久 | 欧美性受极品xxxx喷水| 欧美日本一区二区三区四区| 91精品国产欧美一区二区18| 精品sm在线观看| 国产精品久久久久久久久免费丝袜 | 国产精品超碰97尤物18| 亚洲一卡二卡三卡四卡| 成人黄色777网| 精品视频在线视频| 成人免费视频在线观看| 精品一区二区三区视频 | 欧美视频在线一区二区三区| 国产精品资源在线看| 国产精品黄色在线观看| 亚洲成人综合网站| 激情深爱一区二区| 91热门视频在线观看| 日韩一级欧美一级| 亚洲欧美在线观看| 久久se精品一区精品二区| 91视频国产资源| 久久综合一区二区| 亚洲午夜精品一区二区三区他趣| 久久99精品国产.久久久久 | 成人精品视频一区二区三区| 91黄视频在线| 国产欧美视频在线观看| 五月天亚洲精品| 成人黄色片在线观看| 26uuu亚洲| 亚洲成人动漫在线观看| 9l国产精品久久久久麻豆| 日韩欧美电影在线| 亚洲在线免费播放| 91色在线porny| 中文字幕免费不卡在线| 寂寞少妇一区二区三区| 91精品婷婷国产综合久久竹菊| 国产精品不卡视频| 成人免费视频一区二区| 欧美大肚乱孕交hd孕妇| 日韩avvvv在线播放| 在线观看视频一区二区欧美日韩| 1024亚洲合集| 成人av高清在线| 国产精品午夜在线观看| 国产成人8x视频一区二区| 日韩免费高清视频| 久久国产成人午夜av影院| 4438亚洲最大| 日本不卡中文字幕| 宅男噜噜噜66一区二区66| 亚洲一区二区五区| 欧美日韩国产不卡| 石原莉奈一区二区三区在线观看 | 男人的天堂亚洲一区| 欧美日韩一区二区在线观看| 一区二区高清免费观看影视大全| av电影在线观看一区| 亚洲视频在线一区| 91黄色免费网站| 日韩高清不卡在线| 国产高清精品网站| 99国产精品久久久久久久久久久| 欧美性生活影院| 日韩丝袜情趣美女图片| 欧美一区三区二区| 欧美电影免费观看高清完整版在| 欧美精选午夜久久久乱码6080| 精品视频免费在线| 欧美日韩免费一区二区三区 | 久久99精品视频| 欧美日韩一区在线观看| 日韩电影在线一区| 精品处破学生在线二十三| 国产一区二区三区精品视频| 亚洲国产精品成人综合| 91视频.com| 麻豆一区二区在线| 国产蜜臀av在线一区二区三区| 波多野结衣中文字幕一区| 亚洲一区二区综合| 精品国产凹凸成av人网站| www.性欧美| 蜜桃av一区二区三区电影| 久久精品免视看| 欧美日韩国产首页| 国产 欧美在线| 午夜精品在线看| 国产精品久久久久9999吃药| 欧美色图一区二区三区| 精品一区二区在线看| 日韩伦理av电影| 精品处破学生在线二十三| 91视频免费播放| 国产乱子伦视频一区二区三区 | 亚洲一级电影视频| 欧美精品一区二区三区四区 | 欧美韩国日本综合| 91福利在线播放| 精彩视频一区二区三区| 亚洲精品国产a| 337p粉嫩大胆色噜噜噜噜亚洲| 97精品国产97久久久久久久久久久久| 日韩和的一区二区| 中文字幕日本乱码精品影院| 91精品国产欧美一区二区成人| 色综合久久久久久久久久久| 日韩精品一二三| 一区二区三区国产精品| 国产三区在线成人av| 欧美一区二区三区四区高清| 色婷婷亚洲精品| 大白屁股一区二区视频| 久久精品99久久久| 日韩精品免费视频人成| 亚洲成a人片在线观看中文| 国产精品―色哟哟| 久久久久久久久一| 日韩色在线观看| 制服丝袜国产精品| 色哟哟在线观看一区二区三区| 成人在线一区二区三区| 精品一区二区三区影院在线午夜 | 26uuu久久综合| 日韩视频永久免费| 6080亚洲精品一区二区| 欧美性大战久久久久久久| 色哟哟精品一区| 色综合网站在线| 91免费版pro下载短视频| 高清国产一区二区三区| 国产精品一级片在线观看| 另类小说色综合网站| 蜜芽一区二区三区| 蜜桃免费网站一区二区三区| 日韩精品亚洲专区| 男女性色大片免费观看一区二区 | 欧美日韩激情一区| 51久久夜色精品国产麻豆| 欧美日韩久久一区二区| 色噜噜狠狠一区二区三区果冻| 色婷婷综合在线| 精品1区2区3区| 欧美一二三在线| 欧美变态tickling挠脚心| 2023国产精品视频| 国产精品三级在线观看| 中文字幕一区二区视频| 悠悠色在线精品| 亚洲午夜精品在线| 美女在线视频一区| 国产精一品亚洲二区在线视频| 国产成人亚洲综合a∨猫咪| 成人激情av网| 欧美日韩一区二区三区免费看| 91麻豆精品国产91久久久 | 国产亚洲综合色| 亚洲黄色免费电影| 美女在线视频一区| 成人午夜大片免费观看| 在线观看国产91| 精品欧美黑人一区二区三区| 中文一区在线播放| 亚洲va欧美va人人爽| 狠狠色丁香九九婷婷综合五月| jlzzjlzz亚洲日本少妇| 欧美日韩国产区一| 国产欧美日本一区二区三区| 一区二区三区在线观看欧美| 日韩中文字幕区一区有砖一区| 国产精品1区2区3区| 欧美日韩的一区二区| 日本一区二区成人| 欧美96一区二区免费视频| 91在线小视频|