资源简介
在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 从入门到精通
- 下一篇:计算机组网技术
相关资源
- Win32多线程程序设计.侯捷.超清完美版
- 安卓app之间的socket通信,支持多线程
- Pker多线程后台极速扫描工具2.01修正版
- Linux编程手册-多线程-详细资料.rar
- QT多线程实现图片以缩略图形式显示图
- CPU Cache and Memory Ordering
- 多线程ftp客户端可以实现多站点和上
- 武汉理工大学 面向对象与多线程综合
- 多线程网络文件传输的设计与实现
- 基于Qt实现的多线程客户端与服务器
- QT调用basler SDK 多线程多相机采集代码
- 用PyQT5多线程爬取轻小说工具
- 并行计算多线程求π以及矩阵转置
- 可同时搜索多个文件的多线程快速搜
- 使用三种VC的多线程同步方法编写一个
- QT+Opencv2+VS2012 使用多线程显示网络摄
- 多线程TCP服务器运行程序
- Linux多线程服务端编程 - 陈硕(高清完
- 并发编程笔记(httpswww.bilibili.comvide
- DevExpress RichEditControl 多线程插入表格
- 嵌入式实时操作系统的多线程计算:
- Linux多线程服务端编程 - 陈硕高清完整
-
zw_ob
jective-C高级编程iOS与OSX多线程和 - linux多线程服务器编程
- qt 线程池实现多线程
- 海康网络相机利用SDK 多线程读取图像
- 基于QT的socket TCP通信原创
- CSocket多线程聊天室源码
- QT下多线程 UDP socket
- qt socket 一对多,多线程 广发
评论
共有 条评论