首页 / PHP / 多线程-php有没有线程安全模式
多线程-php有没有线程安全模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了多线程-php有没有线程安全模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2181字,纯文字阅读大概需要4分钟。
内容图文
![多线程-php有没有线程安全模式](/upload/InfoBanner/zyjiaocheng/235/52a5e111439d4dc0b1738e275acee94a.jpg)
做多个脚本运行的时候,都是用文件锁的方式来控制并行的,有什么更好的方式让多个PHP脚本通讯吗?
有什么方式可以保证PHP脚本运行的线程安全吗?
回复内容:
PHP有没有一个配置或者什么方式可以开启线程安全的模式?
做多个脚本运行的时候,都是用文件锁的方式来控制并行的,有什么更好的方式让多个PHP脚本通讯吗?
有什么方式可以保证PHP脚本运行的线程安全吗?
这么解释问题吧:
1。单进程单线程:一个人在一个桌子上吃菜。
2。单进程多线程:多个人在同一个桌子上一起吃菜。
3。多进程单线程:多个人每个人在自己的桌子上吃菜。
多线程的问题是多个人同时吃一道菜的时候容易发生争抢,例如两个人同时夹一个菜,一个人刚伸出筷子,结果伸到的时候已经被夹走菜了。。。此时就必须等一个人夹一口之后,在还给另外一个人夹菜,也就是说资源共享就会发生冲突争抢。
1。对于 Windows 系统来说,【开桌子】的开销很大,因此 Windows 鼓励大家在一个桌子上吃菜。因此 Windows 多线程学习重点是要大量面对资源争抢与同步方面的问题。
2。对于 Linux 系统来说,【开桌子】的开销很小,因此 Linux 鼓励大家尽量每个人都开自己的桌子吃菜。这带来新的问题是:坐在两张不同的桌子上,说话不方便。因此,Linux 下的学习重点大家要学习进程间通讯的方法。
--
补充:有人对这个开桌子的开销很有兴趣。我把这个问题推广说开一下。
开桌子的意思是指创建进程。开销这里主要指的是时间开销。
可以做个实验:创建一个进程,在进程中往内存写若干数据,然后读出该数据,然后退出。此过程重复 1000 次,相当于创建/销毁进程 1000 次。在我机器上的测试结果是:
UbuntuLinux:耗时 0.8 秒
Windows7:耗时 79.8 秒
两者开销大约相差一百倍。
这意味着,在 Windows 中,进程创建的开销不容忽视。换句话说就是,Windows 编程中不建议你创建进程,如果你的程序架构需要大量创建进程,那么最好是切换到 Linux 系统。
大量创建进程的典型例子有两个,一个是 gnu autotools 工具链,用于编译很多开源代码的,他们在 Windows 下编译速度会很慢,因此软件开发人员最好是避免使用 Windows。另一个是服务器,某些服务器框架依靠大量创建进程来干活,甚至是对每个用户请求就创建一个进程,这些服务器在 Windows 下运行的效率就会很差。这"可能"也是放眼全世界范围,Linux 服务器远远多于 Windows 服务器的原因。
来自:http://www.zhihu.com/question/1990176...
重新编译php时指定相关的参数就行了。
configure时加上--enable-maintainer-zts
php中可以直接调用linux下的信号量函数sem_get
,完成加锁,不过不推荐,这样兼容性就不好了。
内容总结
以上是互联网集市为您收集整理的多线程-php有没有线程安全模式全部内容,希望文章能够帮你解决多线程-php有没有线程安全模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。