Php并行计算,PHP到底是单进程还是多进程?

用户投稿 132 0

关于“php_并行”的问题,小编就整理了【3】个相关介绍“php_并行”的解答:

PHP到底是单进程还是多进程?

php在web上运行是单进程的,具体原因如下:

1、PHP是一个单线程的脚本开发语言,它常在Web开发及系统集成中出现。PHP是单进程单线程的,当处理复杂的业务的时候我们会发现他串行执行命令的时候CPU、磁盘、内存等利用的都很低有很多时候都是在排队等待,有的时候我们想并发的让他去执行一批任务然后一起拿解决结果是一件很痛苦的事情(自己用pthread或者其他方式才能解决,但是这很痛苦)开发语言一直在升级变化适应需要。另外,可以考虑通讯使用Swoole。

2、解决方案如下:分前后端,前端可以通过消息中间件,同步、异步 调用一个或多个接口。但是socket的扩展确确实实不咋好用。不是普通小企业能做的出来的。

php落伍了吗?

php没有落伍。

只不过php的地位确实很尴尬,目前都是流行前后端分离,php也基本上就是写API接口了,但写后端的话,JAVA,PYTHOH,Node等都可以写呀,而且在某些场景下比php更适合,PHP+SWOOLE倒还能在一些需要高性能,高并发,多进程等场景下发挥一些用处,但说实话,要是我自已来选型的话,我宁愿去用Go去写一些服务端,相比去学swoole,学go的成本并不高,而且go的各种框架和社区也成熟,php也就写些简单的业务逻辑了。

php一般在小公司用的多,弄点框架快速开发就行,稍微有点规模的公司,php一般都不是主力语言,而且更多的是做一些简单边缘的业务,也就是大家说的事情感觉做了好多,但其实可能对公司来说并无太大价值,你自身也感觉技术无太大提升,因为他们认为php就是做这么简单的事,就是显示下数据,高级的都是Java或其它的做了。

php也不是做不了大项目,只是由于它的规范不像Java那样,真要拿php去做大项目,需要考虑和设计的问题太多了,与其那样,干嘛不用Java这种呢.

php多线程能利用多核吗?

PHP本身是单线程执行的编程语言,由于其设计原因,不支持多线程。这意味着在传统的PHP环境下,无法直接利用多核处理器的优势。

然而,虽然PHP本身不支持多线程,但可以通过一些方法和技术来实现并发和利用多核处理器的能力,例如:

1. 多进程:在PHP中,可以通过fork()函数创建子进程来实现并发处理。每个子进程可以利用不同的CPU核心来执行任务,从而实现多核利用。

2. 外部进程/服务:可以通过与其他支持多线程或多进程的语言(如Python、Java等)配合,将一些并发密集或需要大量计算的任务委托给这些外部进程或服务处理。

3. 扩展和库:PHP中也有一些扩展和库,例如pthread和Parallel等,提供了对多线程的支持,可以在某些情况下实现PHP的多线程编程。

需要注意的是,使用多线程或多进程编程需要谨慎处理共享资源、同步和数据安全等问题,以避免竞态条件和死锁等并发问题。

总结来说,在传统的PHP环境下,直接利用多核处理器的能力是有限的。但可以通过使用多进程、外部进程/服务或一些扩展和库,间接实现并发处理和多核利用。

到此,以上就是小编对于“php_并行”的问题就介绍到这了,希望介绍关于“php_并行”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!