比如:多个人来取仓库物品,我们为了做到多线程的互斥,一种方法是,对每个货品加个mutex互斥锁。另种方法,对窗口(只一个)加个mutex锁,但这样的话效率都比较低。而另钟解决办法是用信号量。信号量其实是mutex的一种加强版本,如果信号量的信号值设为1则其实退化成mutex。

HANDLE CreateSemaphore(
LPSECURITY_ATTRIBUTES lpAttributes,
LONG lInitialCount,
LONG lMaximumCount,
LPCTSTR lpName
);
参数
lpAttributes 安全属性。如果是NULL 就表示要使用默认属
性。Windows 忽略这一参数。
lInitialCountsem aphore 的初值。必须大于或等于0,并且小于
或等于lMaxim umCount。
lMaximumCountSem aphore 的最大值。这也就是在同一时间内能够
锁住sem aphore 之线程的最多个数。
lpNameSem aphore 的名称(一个字符串)。任何线程(或
进程)都可以根据这一名称引用到这个
semaphore。这个值可以是NULL,意思是产生一
个没有名字的sem aphore

最新文章

  1. MyBatis源码分析(一)开篇
  2. DataTables 控件使用和心得 (1) - 入门
  3. python中的装饰器
  4. mysql更新一个表里的字段等于另一个表某字段的值
  5. 《Bluez 》Beta版强势回归!!!
  6. (三)uboot源码分析
  7. Bring up a website by wordpress
  8. [原创,分享]DbHelper 续
  9. Spring AOP (下)
  10. zoj 3547 The Boss on Mars
  11. 【BZOJ 1572】 1572: [Usaco2009 Open]工作安排Job(贪心+优先队列)
  12. python中json.loads,dumps,jsonify使用
  13. 【转】花开正当时,十四款120/128GB SSD横向评测
  14. PAT1079 :Total Sales of Supply Chain
  15. 如何解决python升级后yum报错
  16. javaScript设计模式之面向对象编程(object-oriented programming,OOP)(二)
  17. C# Thread IsAlive 理解
  18. git master 回滚代码
  19. 新建虚拟机并与XShell连接(配置网卡)
  20. 机器C盘临时区

热门文章

  1. Tomcat启动超时问题Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
  2. HAProxy安装配置用于TCP的负载均衡
  3. HDU 4547 CD操作 (LCA最近公共祖先Tarjan模版)
  4. js中如何将字符串转化为时间,并计算时间差
  5. c#编写的基于TCP通信的微风IM 版本3 新年新UI
  6. oracle 查询中实现分页
  7. leetcode868
  8. MySQL高可用MHA实战
  9. Monthly Expense(二分--最小化最大值)
  10. GDB常用命令简介