logo
天地变化的道理
使用率很高网站
生活要常常分享
您身边百科全书
信号量
信号量()又称为信号标; 旗号; 讯号标;,是一个同步对象,用于保持在0至指定最大值之间的一个计数值。当线程完成一次对该-- 对象的等待(-- )时,该计数值减一;当线程完成一次对-- 对象的释放(-- )时,计数值加一。当计数值为0,则线程等待该-- 对象不再能成功直至该-- 对象变成-- 状态。-- 对象的计数值大于0,为-- 状态;计数值等于0,为-- 状态。 信号量的概念是由荷兰计算机科学家艾兹赫尔·戴克斯特拉(-- )发明的,广泛的应用于不同的操作系统中。在系统中,给予每一个行程一个信号量,代表每个行程目前的状态,未得到控制权的行程会在特定地方被强迫停下来,等待可以继续进行的讯号到来。如果信号量是一个任意的整数,通常被称为计数讯号量(-- ),或一般讯号量(-- );如果信号量只有二进位的0或1,称为二进位讯号量(-- 语法. 计数讯号量具备两种操作动作,称为V(codice_1)与P(codice_2)(即部分参考书常称的“PV操作”)。V操作会增加信号标S的数值,P操作会减少它。 运作方式: 提供的-- 线程使用-- 或-- 函数创建一个-- 对象。此时可以指定-- 的当前计数值与计数值上限;也可指定-- 对象的名字。其他进程中的线程可以指出已存在的-- 对象的名字通过调用-- 函数打开它。 如果多个线程在等待一个-- 对象,不保证按照先进先出(-- )顺序调度这些等待线程。外部事件,如内核模式的异步过程调用可改变等待顺序。 在-- 对象为-- 状态时,等待函数返回会把该-- 对象计数值减1。函数-- 把-- 对象的计数值增加指定的值。任何线程,哪怕它没有等待完成过该-- 对象,也可以使用-- 来增加-- 对象的计数。如果-- 导致对象计数值超过上限,则该函数调用失败,返回298号错误:“-- 一个线程多次等待同一个-- 对象,每次等待操作完成都会降低-- 对象计数值(直至计数值为0时该线程阻塞)。然而,通过-- 等待函数使用一个数组包含着同一个-- 对象的多个句柄,不能实现对这个-- 对象计数值的多次下降。 用完-- 对象后,调用-- 函数关闭它。-- 对象的最后一个句柄被关闭后,操作系统会摧毁它。关闭-- 并不影响它的计数值。因此,关闭-- 前或者进程终止前,要确保已经正确调用过-- 。否则,挂起等待该-- 对象的线程会永久阻塞或超时返回。
信号量
生成维基百科快照图片,大概需要3-30秒!
如果网站内容有侵犯您的版权
请联系:pinbor@iissy.com
Copyright ©2014 iissy.com, All Rights Reserved.