windows核心对象semaphore合适增加和减少

转载 2012年03月27日 14:28:40

转自:http://www.ibm.com/developerworks/cn/java/l-threadPool/

在开发软件的过程中,多线程的程序往往需要实现相互通讯,比如几个线程添加一个消息到队列里,而另一个线程在睡眠时,就需要唤醒那个线程来处理事情。在这其中,就需要使用到信号量来进行同步。CreateSemaphore是创建信号量,ReleaseSemaphore是增加信号量。
Semaphore是另一个同步问题机制,不论是Event或Mutex,其他Process在执WaitForSingleObject时,就看当时的物件是Signal或UnSignal而决定是否等待,而Semaphore也相同,但是它要变成Signal /UnSignal的状态,却有些不同,它是提供一个计数值,它允许在这个计数值之内,任何执行到WaitForSingleObject的Thread都不会停下来,而且每执行WaitForSingleObject一次,计数值就减一当计数值变成0时,该Semaphore才会处於UnSignal的状态,而某个Thread ReleaseSemaphore时,便会将计数值增加,以便其他的Thread或本身可得Signal的讯号,而使WaitForSingleObject停止等待。


 

设计模式与架构的核心概念乃是抽象

最近一年来一直在学习设计模式,上周在公司内部听了一个分享,当时一位同事提出设计模式的核心是封装,我强烈不赞同,在我看来设计模式的核心乃是抽象。  君不见,各种开源框架开源项目遍地都是抽象类和接口,每每...
  • a910626
  • a910626
  • 2016年06月30日 19:41
  • 611

共享内存(shared memory)和信号量(semaphore)简介(转)

共享内存(shared memory) 共享内存是一段可以被多个进程共享的内存段。首先,用shmget系统调用产生指定大小的共享内存段,然后需要访问此共享内存的进程调用shmat系统调用,把这个内存段...
  • dingpeng1978
  • dingpeng1978
  • 2008年06月29日 21:53
  • 1061

9. javascript对象 核心对象 Array

  • qq_25201665
  • qq_25201665
  • 2016年10月18日 21:20
  • 525

史上最详细的kettle初步小应用(猪都看得懂哦!!!)

kettle英文翻译为水壶,官方的解释为把数据倒进水壶里,然后再以一定的数据格式输出出来。  1.安装kettle:下载地址: http://community.pentaho.com/project...
  • yangleicsd
  • yangleicsd
  • 2015年09月01日 11:05
  • 788

CreateSemaphore和ReleaseSemaphore函数

在开发软件的过程中,多线程的程序往往需要实现相互通讯,比如几个线程添加一个消息到队列里,而另一个线程在睡眠时,就需要唤醒那个线程来处理事情。在这其中,就需要使用到信号量来进行同步。CreateSema...
  • softn
  • softn
  • 2016年06月22日 06:04
  • 462

Java中的Semaphore和Lock区别

Java提供了一个类Semaphore来实现信号量,概念上讲,一个信号量相当于持有一些许可(permits),线程可以调用Semaphore对象的acquire()方法获取一个许可,调用release...
  • gengyiping18
  • gengyiping18
  • 2017年03月03日 16:38
  • 1588

Mybatis核心对象及生命周期

Mybatis核心对象及生命周期SqlSessionFactory每 一 个 MyBatis 的 应 用 程 序 都 以 一 个 SqlSessionFactory 对 象 的 实 例 为 核 心 。...
  • sunming709424
  • sunming709424
  • 2017年06月02日 18:37
  • 1264

WINDOWS核心编程之什么是内核对象(一)

2004年6月25日 14点近来看了WINDOWS核心编程一书,看的挺过瘾(当然不会就去撞墙,回来再看,呵呵). 为了大家能更快的去了解其中的内容,特写此学习笔记供大家参考。注:本文章可以转载, 标明...
  • carbon107
  • carbon107
  • 2004年06月25日 15:11
  • 2329

比较ReentrantLock和synchronized和信号量Semaphore实现的同步性能

为了比较一下ReentrantLock和synchronized的性能,做了一下性能测试: public class ReentreLockTest { private static long...
  • arkblue
  • arkblue
  • 2011年01月14日 14:21
  • 6910

ADO.NET三个核心对象的简要说明

ADO.NET三个核心对象的简要说明SqlConnection //连接字符串SqlCommand //执行sql命令的对象SqlDataReader //读取数据库中的记录注意除了SqlConnec...
  • luxiaoyu_sdc
  • luxiaoyu_sdc
  • 2011年01月18日 16:19
  • 922
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:windows核心对象semaphore合适增加和减少
举报原因:
原因补充:

(最多只允许输入30个字)