数据库多线程课案.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
小组名称:郭涛涛小组 小组成员:郭涛涛 李源 白亚龙 题目1:多道程序缓冲区协调操作    如下图所示,有多个PUT1和PUT2操作要不断循环地向Buff1和Buff2送字符数据,有Move1和Move2操作不断地将Buff1和Buff2的数据取到Buff3,有多个GET操作要不断地从Buff3中取数据。PUT、 MOVE、 GET每次操作一个数据,为了在操作的过程中要保证数据不丢失, 每个Buffer每次只能接受一个PUT或一个Move或一个Get。运用进程同步和互斥机制设计一个多道程序完成上述操作。 基本功能要求   (1) 可以随机产生字符数据和提供两个数据文件,由put操作将数据放入Buff,buffer中容量单位是字符。 (2)提供良好图形界面,显示Buffer的操作过程,可以暂停和继续系统的执行。  (3) 可以设定各Buffer的容量、PUT、GET、Move操作的个数;  (4) 可以设定PUT、GET、Move操作的速度;  (5) 实时显示每个Buffer中已放入的数据和数据个数,当前Buffer中数据的个数和数据的内容,空闲Buffer的空间的个数;  (6) 实时显示线程、进程所处于等待(阻塞)状态的个数; (7)程序运行结束,显示汇总数据: 总的运行时间;Buffer中数据的个数;已放入BUFFER的数据个数; 已取出的数据个数;平均每个buffer中的数据个数。 (8)能够将每次的实验输入和实验结果存储起来,下次运行时或以后可查询。 。。。。。。 我们创建三类线程: (1) PUT1线程(往BUFFER1里放数据,相当于生产者) PUT2线程(往BUFFER2里放数据,相当于生产者) (2) MOVE1线程(从BUFFER1里取数据并放到BUFFER3里,相当于搬运者) MOVE2线程(从BUFFER2里取数据并放到BUFFER3里,相当于搬运者) (3) GET线程(从BUFFER3里取数据,相当于消费者) 每类线程可由用户自行设定线程的个数。 总体结构设计 模块关系设计 流程图 环境设置 界面设计 主界面 功能界面 统计界面 相关API函数介绍 (1)线程创建函数 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes,//线程安全属性 DWORD dwStackSize,//线程堆栈的初始化大小,等于0时为系统默认的堆栈大小 PLTHREAD_START_ROUTINE lpStartAddress,//线程函数 LPVOID lpParameter,//线程参数 DWORD dwCreationFlags,//创建方式 LPDWORD lpThreadId//线程表示符 ) 该函数创建一个线程,如果没有特殊需要除第三个参数外都可设为0,按系统的默认取值对待,主要是第三个参数,它是线程程序的入口,线程程序入口的标准形式为 UINT FUNCTION (LPVOID param) 线程函数里可以传一个指针作为参数(param),该参数由创建线程函数(CreateThread)里的第四个参数确定。 (2)信号量创建函数 HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,//安全属性指针 LONG llnitialCount,//初始计数 LONG lMaximumCount,//最大计数 LPCTSTR lpName//对象名指针 )

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档