因此PHP中的信号量非常便于同步作业/任务(过程,更准确)。
假设1进程获得对信号量的访问权并开始执行其操作(=工作)。其他3个进程正在触发 sem_acquire()以获得访问权限。它们都被阻塞,等待信号量自由并分配给每个信号量。
问题:3个别流程将按什么顺序执行?常见的逻辑说他们会先执行(并被阻止),先服务(释放到工作),但我没有在官方文档中看到这种说法。
任何人都可以确认或纠正我吗? 谢谢!
答案 0 :(得分:2)
我写了一个脚本来演示,是的,它们是按照先到先得的原则提供的。这对我的应用至关重要。
您也可以演示它-创建以下thread.php,然后使用this shell script进行调用。
答案 1 :(得分:0)
PHP sem_acquire()
函数调用semop()
系统调用,该调用似乎无法保证等待进程将在何时获取信号量。