- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实践四:用Win32同步对象解决有限缓冲区问题
完成人:
班级 学号:0506580205
姓名:李立
报告日期:
2009-01-02
一、实践内容简要描述
1、实践目标
用Win32同步对象解决有限缓冲区问题。
2、实践内容
写一个多线程实现C/C++语言程序:一些线程负责找出某个数据范围的素数,并放到一个数组中,另一些线程负责将数组中的素数按次序取出,并显示出来。要求定义一个全局变量的数组int prime[9]用于存放找到的待显示的素数,要理解成“环形缓冲区”。
二、实践报告主要内容
1、设计思路
读取文件内容,通过表示字母W或者D来决定创建的是写线程还是读线程。通过循环来创建线程。设计一个全局变量int count = 0,用于判断缓冲区的满和空,并结合同步对象来实现线程之间的通信,在写或读线程结束自身的同时通知对方,对方也同时结束线程并返回主线程,结束任务。
2、主要数据结构
int prime[9]; //环形缓冲区
int count = 0; //缓冲区计数
HANDLE h_Full; //该句柄用于通知读线程缓冲区中有素数可读
HANDLE h_Empty; //该句柄用于通知写线程缓冲区中有空位可写
3、主要代码分析
#include windows.h
#include conio.h
#include fstream.h
#include stdio.h
#define MAX_THREAD_NUM 64
struct ThreadInfo
{
int serial;
char entity;
int from;
int to;
};
int prime[9];
int count = 0;
HANDLE h_Full;
HANDLE h_Empty;
HANDLE h_Thread[MAX_THREAD_NUM];
ThreadInfo thread_info[MAX_THREAD_NUM];
void Control_Thread( char* file );
void RP_ReaderThread(void* p);
void RP_WriterThread(void* p);
////////////////////////////////////////////////////////
// main fuction
////////////////////////////////////////////////////////
int main( int agrc, char* argv[] )
{
char ch;
for(int i =0;i 9;i ++)
prime[i] = 0;
while ( TRUE )
{
// Cleare screen
system( cls );
// display prompt info
printf(*********************************************\n);
printf( 1.Start test\n);
printf( 2.Exit to Windows\n);
printf(*********************************************\n);
printf(Input your choice(1or2): );
// if the number inputed is error, retry!
do{
ch = (char)_getch();
}while( ch != 1 ch != 2);
system ( cls );
if ( ch == 1)
Control_Thread(ex4.dat);
else if ( ch == 2)
return 0;
printf(\nPress any key to finish this Program. \nThank you test this Proggram!\n);
_getch();
} //end while
} //end main
///////////////////////////////////////////////////////////////
// Reader Priority fuction
// file: filename
/////////////////////////////////////////////////////////////
您可能关注的文档
- 课程教学大纲汇编014.doc
- 据古令图书集成记载烈女、节妇唐代有51人.ppt
- 关于层次分析法的教师教学质量模糊综合评价.PDF
- 第一部分力及运动.doc
- 广东仁化(湘粤界)至博罗公路环境监测服务.doc
- 第二节不同等级城市服务功能.ppt
- 中国木门30强——北京龙鼎基业木门.ppt
- 排球运动1895年度起源于美国,由美国马萨诸塞州霍利奥克城的.ppt
- 第三篇输入输出接口技术.ppt
- 第三十九篇抗恶性肿瘤药.ppt
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
文档评论(0)