2009-12-21 30 views
10

是否有可能查詢使用sem_get創建的信號而不實際阻塞,就像sem_acquire函數一樣?查詢一個沒有阻塞的PHP信號量?

乾杯, 丹。

+1

歡迎的StackOverflow! – Sampson 2009-12-21 15:32:09

+0

謝謝。不是世界上最激動人心的第一篇文章,我承認! ;-) – Dan 2009-12-21 15:53:39

回答

6

不幸的是,PHP目前不支持非阻塞信號量。

如果像這樣的事情是必要的,你可以利用信號量與共享內存一起創建你自己的非阻塞鎖機制。

使用一個共享內存變量來標記是否存在鎖,然後在針對該變量的操作周圍使用信號量。

0

從PHP 5.6.1開始,它支持$ NOWAIT參數sem_acquire:

bool sem_acquire (resource $sem_identifier [, bool $nowait = false ])