PHP中有哪些锁-创新互联

PHP中有哪些锁?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

创新互联主要企业基础官网建设,电商平台建设,移动手机平台,微信小程序开发等一系列专为中小企业按需定制产品体系;应对中小企业在互联网运营的各种问题,为中小企业在互联网的运营中保驾护航。

文件锁

这类锁比较常见,例如 mysql, php-fpm 启动之后都会有一个pid文件记录了进程id,这个文件就是文件锁。

这个锁可以防止重复运行一个进程,例如在使用crontab时,限定每一分钟执行一个任务,但这个进程运行时间可能超过一分钟,如果不用进程锁解决冲突的话两个进程一起执行就会有问题。

使用PID文件锁还有一个好处,方便进程向自己发停止或者重启信号。例如重启php-fpm的命令为:

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

发送USR2信号给pid文件记录的进程,信号属于进程通信,会另开一个篇幅。

互斥锁和读写锁

sync模块中的Mutex:

Mutex是一个组合词,mutual exclusion。用pecl安装一下sync模块, pecl install sync。 文档中的SyncMutex只有两个方法,lock 和 unlock。

sync模块中的读写锁:

SyncReaderWriter的方法类似,readlock, readunlock, writelock, writeunlock成对出现即可。

sync模块中的Event:

感觉和golang中的Cond比较像,wait()阻塞,fire()唤醒Event阻塞的一个进程。有一篇好文介绍了Cond, 可以看出Cond就是锁的一种固定用法,SyncEvent也一样。php文档中的例子显示,fire()方法貌似可以用在web应用中。

sync模块中的信号量:

SyncSemaphore文档中显示,它和Mutex的不同之处,在于Semaphore一次可以被多个进程(或线程)得到,而Mutex一次只能被一个得到。所以在SyncSemaphore的构造函数中,有一个参数指定信号量可以被多少进程得到。

感谢各位的阅读!看完上述内容,你们对PHP中有哪些锁大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注创新互联行业资讯频道。

当前题目:PHP中有哪些锁-创新互联
当前地址:https://www.cdcxhl.com/article26/ehdjg.html

成都网站建设公司_创新互联,为您提供云服务器电子商务建站公司自适应网站全网营销推广做网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设