php pthreads 扩展怎样??

刚看到一篇关于多进程通信的描述,里面扯到 pthreads

clipboard.png

clipboard.png

难道 pthreads 这个多线程扩展很多坑,各种不稳定??

阅读 5.5k
5 个回答

pthreads不可靠,主要是因为PHP的多线程支持本来就不可靠。PHP和其他很多软件一样,是主要针对Linux设计的,而Linux中使用进程的消耗并不是特别大,并且通讯、锁、信号量等问题已经又系统去实现了,并不需要程序自己去实现。

据我所知,除了Java、OC等这种主张和常用线程的编程语言以外,其他的编程语言对多线程其实都并不是特别友好。

所以,在PHP里用pnctl去操作多进程相对来说是更好的选择。

pthreads 可是真正意义上的多线程,现有网上的大多资料都是 php5 时代的产物,要知道 php7 都出来好几年了,作者也早已经基于 php7 重写(PS. 链接 )了。
所以,至于 php7 上用起来如何,也只能自己去摸爬了。

php多线程在web模式下是伪多线程,确实不稳定。php只有在cli模式下使用多线程,才是真正意义上的多线程

php pthreads扩展

Windows版的PHP从版本5.2.1开始有Thread Safe和NoneThread Safe之分。
Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。
Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。

Zend Extension Build    API320151012,TS,VC14
PHP Extension Build    API20151012,TS,VC14

在phpinfo中查看

  1. 部分发行版自带的php需要重新编译,开启ts。例如centos。

  2. 有坑,不可控,跑的多了会报 段错。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题