信号量 信号量英語semaphore又稱為信号标是一个同步对象用于保持在至指定最大值之间的一个计数值当线程完成一次对该semaphore对象的等待wait时该计数值减一当线程完成一次对semaphore对象的释放release时计数值加一当计数值为则线程等待该semaphore对象不再能成功直至该semaphore对象变成signaled状态semaphore对象的计数值大于为signaled状态计数值等于为nonsignaled状态 信号量的概念是由荷兰计算机科学家艾兹赫尔戴克斯特拉Edsger W Dijkstra发明的广泛的应用于不同的操作系统中在系統中給予每一個行程一個信号量代表每個行程目前的狀態未得到控制權的行程會在特定地方被強迫停下來等待可以繼續進行的訊號到來如果信號量是一個任意的整數通常被稱為計數訊號量Counting semaphore或一般訊號量general semaphore如果信號量只有二進位的或稱為二進位訊號量binary semaphore