




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Windows同步与互斥函数 中山大学计算机科学系陈国明isscgm CreateTread 函数功能 创建一个在调用进程的地址空间中执行的线程函数原型 HANDLECreateThread LPSECURITY ATTRIBUTESlpThreadAttributes DWORDdwStackSize LPTHREAD START ROUTINElpStartAddress LPVOIDlpParameter DWORDdwCreationFlags LPDWORDlpThreadId 返回值 成功则返回新线程的句柄 否则返回NULL参数 安全属性 为空则不使用 线程堆栈大小 0为缺省 例如 HANDLEh Thread DWORDthread ID ThreadInfothread info 假设ThreadInfo是用户预定义结构 DWORDWINAPISubThread void aa intiID int aa h Thread CreateTread NULL 0 LPTHREAD START ROUTINE SubThread void i或返回值 无 CreateMutex 函数功能 创建有名或无名的互斥对象HANDLECreateMutex LPSECURITY ATTRIBUTESlpMutexAttributes pointertosecurityattributesBOOLbInitialOwner flagforinitialownershipLPCTSTRlpName pointertomutex objectname 返回值 若成功则返回互斥对象句柄 若失败则返回NULL HANDLEname name CreateMutex NULL FALSE aaa name OpenMutex MUTEX ALL ACCESS FALSE aaa ReleaseMutex 函数功能 放弃指定互斥对象的所有权函数原型 BOOLReleaseMutex HANDLEhMutex 返回值 成功则返回非零值 否则返回零 HANDLEh Mutex h Mutex CreateMutex NULL FALSE mutex for readcount h Mutex OpenMutex MUTEX ALL ACCESS FALSE mutex for readcount DWORDwait for mutex wait for mutex WaitForSingleObject h Mutex 1 ReleaseMutex h Mutex Sleep 函数功能 对于指定的时间间隔挂起当前的执行线程函数原型 VOIDSleep DWORDdwMilliseconds 返回值 无 WaitForMultipleObjects 函数功能 当满足下列条件之一时返回 1 任意一个或全部指定对象处于信号态 2 超时 函数原型 DWORDWaitForMultipleObject DWORDncount CONSTHANDLE lpHandles BOOLfWaitAll DWORDdwMilliseconds 返回值 调用成功则返回引起函数返回的事件 否则返回WAIT FAILED 例如 DWORDwait for all DWORDn thread 线程数目HANDLEh Thread MAX THREAD NUM wait for all WaitForMultipleObject n thread h Thread TRUE 1 WaitForSingleObject 函数功能 当下列情况之一发生时函数返回 1 指定对象处于信号态 2 超时函数原型 DWORDWaitForSingleObject HANDLEhHandle DWORDdwMilliseconds 返回值 调用成功则返回引起函数返回的事件 否则返回WAIT FAILED InitializeCriticalSection 函数功能 初始化临界区对象 临界区使用之前必须初始化 函数原型 VOIDInitializeCriticalSection LPCRITICAL SECTIONlpCriticalSection 返回值 无 EnterCriticalSection 函数功能 等待指定临界区对象的所有权 当调用线程被赋予所有权时 该函数返回 函数原型 VOIDEnterCriticalSection LPCRITICAL SECTIONlpCriticalSection 返回值 无 LeaveCriticalSection 函数功能 释放指定临界区对象的所有权 函数原型 VOIDLeaveCriticalSection LPCRITICAL SECTIONlpCriticalSection 返回值 调用成功则返回引起函数返回的事件 否则返回WAIT FAILED 例如 CRITICAL SECTIONRP Write 定义一个临界区对象InitializeCriticalSection CreateSemaphore 函数功能 创建一个有名或无名的信号量对象函数原型 HANDLECreateSemaphore LPSECURITY ATTRIBUTESlpAttributes LONGlInitialCount LONGlMaximumCount LPCTSTRlpName 返回值 若成功则返回信号量对象句柄 失败则返回NULL ReleaseSemaphore 函数功能 将指定信号量对象的计数增加一个指定的数量 函数原型 BOOLReleaseSemaphore HANDLEhSemaphore LONGlReleaseCount LPLONGlpPreviousCount 返回值 成功则返回TRUE 否则返回FALSE HANDLEname OpenSemaphore SEMAPHORE ALL ACCESS FALSE name WaitForSingleObject name INFINITE ReleaseSemaphore name 1 NULL WaitForSingleObject name INFINITE ReleaseMutex name 题目 吃苹果 父亲 儿子 女儿三人和一个盘子 当盘子空时 父亲往盘中随机放苹果或香蕉 儿子只从盘中拿苹果 女儿只从盘中拿香蕉 include include includestaticintk 0 forfathertolisttheorderofthrowingfruitCRITICAL SECTIONmmutex 用于互斥的临界区HANDLEApple Banana 线程函数 儿子行为函数 DWORDWINAPISon LPVOIDn inti 1 OpenSemaphore MUTEX ALL ACCESS false apple while 1 WaitForSingleObject Apple INFINITE 等苹果cout Soneats i apples endl LeaveCriticalSection 线程函数 女儿行为函数 DWORDWINAPIDaughter LPVOIDn inti 1 OpenSemaphore MUTEX ALL ACCESS false banana while 1 WaitForSingleObject Banana INFINITE 等香蕉cout Daughereats i bananas endl LeaveCriticalSection 线程函数 父亲放水果 DWORDWINAPIFather LPVOIDn UINTfruit EnterCriticalSection intmain intj k 0 HANDLEFather 20 Apple CreateSemaphore NULL 0 1 apple Banana CreateSemaphore NULL 0 1 banana InitializeCriticalSection VisualC 中伪随机数生成机制 用VC产生随机数有两个函数 分别为rand void 和srand seed 其用法是先调用srand函数 如srand unsigned time NULL 这样可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州省黔东南、黔南、黔西南2025届英语八年级第二学期期中综合测试试题含答案
- 2025年银发消费市场:高品质养老服务需求研究报告001
- 新能源汽车租赁服务在2025年新能源环卫车市场的应用前景报告
- 2025年农业科技创新成果转化机制报告:科技成果转化机制创新与政策支持
- 商业银行金融科技人才金融科技人才培养与人才培养评价研究报告
- 制造业绿色供应链管理在绿色制造与绿色产业政策创新报告
- 2025年二手交易电商平台信用评价体系与市场发展趋势研究报告001
- 2025届上海市长宁区八下英语期中统考模拟试题含答案
- 2025年医院电子病历系统在医院信息化中的数据备份优化报告
- 2025年养老金制度改革对金融市场投资机会与风险规避研究报告
- Unit 2 Home Sweet Home 第6课时(Project Reading Plus) 2025-2026学年人教版英语八年级下册
- 餐饮连锁企业品牌授权与经营管理协议
- 2025-2030年中国生物医学材料行业市场深度分析及发展前景与投资研究报告
- 2025年小学语文一年级下册无纸笔测试题(小学一年级游园乐考无纸化检测)
- 2025至2030中国弹簧钢行业产业运行态势及投资规划深度研究报告
- 2025年地理中考时政热点复习课件
- 北京市2024年高招本科普通批录取投档线
- DB32-T 5088-2025 废活性炭综合利用污染控制技术规范
- 2024-2025学年人教版数学八年级下册期末复习卷(含解析)
- 学习解读《水利水电建设工程验收规程》SLT223-2025课件
- DZ∕T 0213-2020 矿产地质勘查规范 石灰岩、水泥配料类(正式版)
评论
0/150
提交评论