91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-10
  • 語(yǔ)言: 其他
  • 標(biāo)簽:

資源簡(jiǎn)介

讀者優(yōu)先-讀者線程,讀者優(yōu)先-寫者線程,讀者優(yōu)先處理函數(shù),寫者優(yōu)先-讀者線程,寫者優(yōu)先-寫者線程,寫者優(yōu)先處理函數(shù)...

資源截圖

代碼片段和文件信息

#include?“windows.h“
#include?
#include?
#include?
#include?
#include?
#include??

#define?READER?‘R‘???????????????????//讀者
#define?WRITER?‘W‘???????????????????//寫者
#define?INTE_PER_SEC?1000????????????//每秒時(shí)鐘中斷的數(shù)目
#define?MAX_THREAD_NUM?64????????????//最大線程數(shù)目
#define?MAX_FILE_NUM?32??????????????//最大文件數(shù)目
#define?MAX_STR_LEN?32???????????????//字符串的長(zhǎng)度

int?readcount=0;?????????????????????//讀者數(shù)目
int?writecount=0;????????????????????//寫者數(shù)目

CRITICAL_SECTION?RP_Write;???????????//臨界區(qū)
CRITICAL_SECTION?cs_Write;
CRITICAL_SECTION?cs_Read;

struct?ThreadInfo
{
int?serial;??????????????????????//線程序號(hào)
char?entity;?????????????????????//線程類別(判斷是讀者線程還是寫者線程)
double?delay;????????????????????//線程延遲時(shí)間
double?persist;??????????????????//線程讀寫操作時(shí)間
};


/**************************************************************************/
//讀者優(yōu)先---讀者線程
//P:讀者線程信息

void?RP_ReaderThread(void?*p)
{
//互斥變量
HANDLE?h_Mutex;
h_Mutex=OpenMutex(MUTEX_ALL_ACCESSFALSE“mutex_for_readcount“);

DWORD?wait_for_mutex;????????????//等待互斥變量所有權(quán)
DWORD?m_delay;???????????????????//延遲時(shí)間
DWORD?m_persist;?????????????????//讀文件持續(xù)時(shí)間
int?m_serial;????????????????????//線程序號(hào)
//從參數(shù)中獲得信息
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(“Reader?thread?%d?sents?the?reading?require.\n“m_serial);

//等待互斥信號(hào)保證對(duì)ReadCount?的訪問(wèn)、修改互斥
wait_for_mutex=WaitForSingleobject(h_Mutex-1);
//讀者數(shù)目增加
readcount++;
if(readcount==1)
{
//第一個(gè)讀者等待資源
EnterCriticalSection(&RP_Write);
}
ReleaseMutex(h_Mutex);????????????//釋放互斥信號(hào)

//讀文件
printf(“Reader?thread?%d?begins?to?read?file.\n“m_serial);
Sleep(m_persist);

//退出線程
printf(“Reader?thread?%d?finished?reading?file.\n“m_serial);
//等待互斥信號(hào)保證對(duì)ReadCount的訪問(wèn)修改互斥
wait_for_mutex=WaitForSingleobject(h_Mutex-1);
//讀者數(shù)目減少
readcount--;
if(readcount==0)
{
//如果所有的讀者讀完喚醒寫者
LeaveCriticalSection(&RP_Write);
}
ReleaseMutex(h_Mutex);??????????//釋放互斥信號(hào)
}


/**************************************************************************/
//讀者優(yōu)先---寫者線程
//P:寫者線程信息

void?RP_WriterThread(void?*p)
{
DWORD?m_delay;???????????????????//延遲時(shí)間
DWORD?m_persist;?????????????????//寫文件持續(xù)時(shí)間
int?m_serial;????????????????????//線程序號(hào)
//??從參數(shù)中獲得信息
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?finished?writing?to?the?file.\n“m_serial);

//釋放資源
LeaveCriticalSection(&RP_Write);

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件??????10121??2007-06-23?14:01??Reader?and?Writer.cpp

?????文件?????????45??2007-04-13?16:19??thread.txt

-----------?---------??----------?-----??----

????????????????10166????????????????????2


評(píng)論

共有 條評(píng)論