信号量的物理意义是什么应如何设置其初值
1、信号量的定义:信号量(Semaphore),有时被称为信号灯,是在多钱程环境下使用的一种设施,它负责协调各个线程,以保证它们能够正确、合理的使用公共资源Semaphore分为单值和多值两种,前者只能被一个线程获得,后者可以被若干个线程获得。
2、以一个停车场的运作为例。简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看门人允许其中三辆直接进入,然后放车拦,剩下的车则必须在入口等待,此后来的车也都不得不在入口处等待。
3、这时,有一辆车离开停车场,看门人得知后,打开车拦,放入外面的一辆进去,如果又离开两辆,则又可以放入两辆,如此往复。在这个停车场系统中,车位是共资源,每辆车好比一个线程,看门人起的就是信号量的作用。
4、抽象的来讲,信号量的特性如下:信号量是一个非负整数(车位数),所有通过它的线程/进程(车辆)都会将该整数减一(通过它当然是为了使用资源),当该整数值为零时,所有试图通过它的线程都将处于等待状态。
5、在信号量上我们定义两种操作: Wait (等待)和Release (释放)。当一个线程调用Wait操作时,它要么得到资源然后将信号量减一,要么一直等下去(指放入阻塞队列),直到信号量大于等于一时。
6、Release(释放)实际上是在信号量上执行加操作,对应于车辆离开停车场,该操作之所以叫做“释放”是因为释放了由信号量守护的资源。
7、在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第个线程释放信号量。为了完成这个过程,需要创建一个信号量VI,然后将Acquire Semaphore VI以及Release SemaphoreV分别放置在每个关键代码段的首未端。确认这些信号量VI引用的是初始创建的信号量。
猜你喜欢
怎样去除壁纸胶的味道
可用米醋配合一定量的水倒入盆中放置室内,可中和异味。可以买绿...三星w2016怎么设定关机闹钟
三星手机支持关机闹钟功能。操作方法在手机设置中找到应用程序在...上古卷轴5怎么结婚
在上古卷轴中结婚有两个方法,第一种方法比较简单,做任务就可以...江苏适合栽种哪些名贵苗木
江苏省地区冬天有霜雪,很多南方名贵苗木无法种植。可种植金丝楠...银行贷款定价基准转换是什么意思
银行贷款定价基准转换的意思是金融机构将原合同约定的利率定价方...惠普m1005怎么扫描
点击电脑左下角的开始键,在弹出的页面中选择右侧的设备和打印机...血压低吃什么食物好
饮食一血压低可以服用生脉饮进行调理的,饮食上可以可以适当多吃...松花蛋和变蛋是一样的吗
是一样的。松花蛋一般指皮蛋,而皮蛋又称松花蛋变蛋等,是中国汉...欢乐喜剧人东方卫视几点星期几播出?
欢乐喜剧人是东方卫视喜剧竞赛真人秀节目。该节目通过以喜剧的各...大蒜什么时候成熟
大蒜生长周期为个月,都是每年的月播种,第二年月收获。大蒜收获...墙面潮湿掉皮怎么办
墙面潮湿的原因有很多,比如说管道渗漏墙面保温层没有做好墙面出...感人的句子戳心上了
原来等待也可以如此的美丽,因为爱你。世上最难断的是感情最难求...皮衣压出褶子后怎么处理
先用优质的皮衣柔软护理剂,用完后皮衣会变得柔软,这时,褶皱就...炒饼丝的家常做法
大头菜,饼,生抽,盐,油,鸡精,葱花,香菜。饼切成丝,香菜切...海林市美食
海林市美食海林猴头菇镜泊湖风味鱼宴荷叶饼干肠吊炉饼等。海林猴...