资源简介
在Windows 2000 环境下,创建一个包含n 个线程的控制台进程。用这n 个线程来表示n个读者或写者。每个线程按相应测试数据文件的要求,进行读写操作。请用信号量机制分别实现读者优先和写者优先的读者-写者问题。
读者优先:如果一个读者申请进行读操作时已有另一读者正在进行读操作,则该读者可直接开始读操作。
写者优先:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。

代码片段和文件信息
#include
#include
HANDLE h_Mutex;
//bool STOP=0;
//CRITICAL_SECTION RP;
const int maxwork = 100;
int workid =10;
DWORD _stdcall a1()
{
//OpenMutex(NULLTRUENULL);
// EnterCriticalSection(&RP);
/* while(STOP==1)
{
STOP=0;
cout<<1111< } */
for(; ;)
{
WaitForSingleobject(h_Mutex2000);
if(workid {
workid +=1;
Sleep(1000);
cout<<“Thread a1 out “< }
ReleaseMutex(h_Mutex);
}
}
DWORD _stdcall a2()
{//cout<<2222< //OpenMutex(NULLfalseNULL);
for(; ;)
{
WaitForSingleobject(h_Mutex2000);
if(workid {
workid +=1;
Sleep(1000);
cout<<“Thread a2 out “< }
ReleaseMutex(h_Mutex);
}
}
void a3()
{
//OpenMutex(NULLfalseNULL);
cout<<3333< }
void main()
{
//int a[3]={463};//DWORD dwThreadID;
HANDLE handle1handle2;
//handle1=OpenMutex();
handle1=::CreateThread(NULLFALSE(LPTHREAD_START_ROUTINE)(a1)NULL0NULL);
handle2=::CreateThread(NULLFALSE(LPTHREAD_START_ROUTINE)(a2)NULL0NULL);
h_Mutex=CreateMutex(NULLFALSE“MUTEX“);
CloseHandle(handle1);
CloseHandle(handle2);
//*
while(true)
{
;system(“PAUSE“);
}
//*/
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 50176 2009-06-08 23:24 线程\线程.ncb
文件 164864 2009-06-08 23:24 线程\Debug\vc60.idb
文件 94208 2009-06-08 23:22 线程\Debug\vc60.pdb
文件 648192 2009-06-08 23:22 线程\Debug\线程.pdb
文件 213039 2009-05-30 12:51 线程\Debug\main.exe
文件 566272 2009-05-30 12:51 线程\Debug\main.pdb
文件 258376 2009-05-30 12:51 线程\Debug\main.ilk
文件 349992 2009-06-08 23:24 线程\Debug\线程.ilk
文件 253999 2009-06-08 23:24 线程\Debug\线程.exe
文件 3617892 2009-06-08 22:11 线程\Debug\main.pch
文件 17299 2009-06-08 22:11 线程\Debug\main.obj
文件 3653324 2009-06-08 22:11 线程\Debug\线程.pch
文件 26067 2009-06-08 23:24 线程\Debug\线程.obj
文件 736 2009-06-08 23:24 线程\线程.plg
文件 50176 2009-06-08 22:11 线程\main.ncb
文件 646 2009-06-08 22:11 线程\main.plg
文件 1258 2009-05-30 12:51 线程\main.cpp
文件 43 2009-05-30 23:17 线程\1.txt
文件 3377 2009-06-08 22:10 线程\main.dsp
文件 48640 2009-06-08 22:11 线程\main.opt
文件 516 2009-06-08 22:11 线程\main.dsw
文件 3379 2009-06-08 22:45 线程\线程.dsp
文件 48640 2009-06-08 23:24 线程\线程.opt
文件 516 2009-06-08 23:24 线程\线程.dsw
文件 4566 2009-06-09 11:39 线程\线程.cpp
目录 0 2009-05-29 18:39 线程\Debug
目录 0 2009-05-29 18:39 线程
----------- --------- ---------- ----- ----
10076193 27
............此处省略0个文件信息
- 上一篇:MyBatis 从入门到精通
- 下一篇:计算机组网技术
相关资源
- 编写简单的RMI程序 多线程web 服务器
- 多线程生产者消费者模式
- 多线程实例:桌面智能弹球小游戏
- WPF多线程演示
- 易语言:多线程传多变量的最稳定方
- 排队买票多线程问题
- 强大的完善的 活动抽奖系统适合各单
- 十字路口红绿灯交通情况模拟
- Qt 多线程连接数据库——数据库
- 易语言多线程端口扫描源码
- POSIX多线程程序设计中文版源码
- 易语言md5定向爆破源码
- 多线程扫描工具
- Delphi.High.Performance.Applications.Concurren
- Qt5的多线程小程序,实现按钮开关线
- 控制台串口通信程序
- POSIX多线程程序设计中文版pdf
- 使用多线程及图像分块实现图像处理
- 图像处理中使用多线程及图像分块实
- p2p文件共享系统 含代码和文档
- 武汉理工大学面向对象与多线程综合
- 多线程编程指南[中文完整翻译版] –
- QT多线程实现图片以缩略图形式显示
- qt利用线程实现多任务
- 基于socket的多线程QQ聊天系统(代码
- UDP socket 多线程
- linux多线程编程书籍
- 串口通信+多线程+数据错乱自动恢复
- VC五子棋源代码 想要的速度下哦 多线
- 多核多线程技术 (高清 带书签) (
评论
共有 条评论