訊號量意思

訊號量(Semaphore)是一個同步化(Synchronization)的機制,用來控制不同行程(Thread)或不同進程(Process)之間對共享資源的訪問。訊號量的值可以是一個整數,它代表了一個計數器,用來控制允許訪問共享資源的行程或進程的數量。

訊號量可以用來實現互斥鎖(Mutex)和讀寫鎖(Read-Write Lock)等同步化原語。例如,當訊號量的值為1時,它可以用來實現互斥鎖,以確保一次只有一個行程或進程可以訪問共享資源。當行程或進程想要訪問共享資源時,它會先檢查訊號量的值,如果訊號量的值為0,則行程或進程會阻塞(Block),直到訊號量的值變為非0。

訊號量也可以用來實現其他同步化原語,例如 barrier,用來讓多個行程或進程等待,直到所有行程或進程都準備好才繼續執行。

訊號量通常由操作系統提供,例如在POSIX系統中,可以用 sem_t 型別來創建和管理訊號量。在Windows系統中,則可以使用 CreateSemaphore 函數來創建和管理訊號量。