Chinaunix首页 | 论坛 | 博客
  • 博客访问: 391412
  • 博文数量: 102
  • 博客积分: 1395
  • 博客等级: 中尉
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-05 18:09
文章分类

全部博文(102)

文章存档

2013年(25)

2012年(77)

分类: C/C++

2013-03-29 14:54:10

window sdk下的线程同步

CreateThread()创建线程函数, 返回一个线程的句柄;
closeHandle()将内核中线程的引用指数减 1 ;

CreateMutex() 函数创建一个互斥的对象用于线程的互斥, 互斥对象是属于内核的, 它能够确保线程拥有对单个资源的互斥访问权 ;
互斥对象包含一个使用量, 一个线程ID和 一个计数器, 其中ID表示系统中那个线程当前拥有该互斥对象, 计数器用于指明该线程拥有互斥对象的次数。计数器为零时才是真正的释放该
对象,也就有了信号,可以被其他线程获得该互斥对象。 当在一个线程中多次调用waitforsignalobject时, 该计数器不为1 应多次调用releaseMutex

waitforsignalobject(hmutex, INFINITE) ; 线程会等待hmutex处有信号状态, 线程才继续往下执行;
ReleaseMutex() 释放互斥对象的句柄, 释放互斥对象的所有权。当释放操作不是同一个线程来操作时为无效操作, 因为在该互斥对象内部有一个ID指明线程的ID
所以要谁获得谁释放。








阅读(1669) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~