货币问答:php多进程

黑丑

windows php 为什么 多进程

<br />是HTML代码,\n是ASCII码,浏览器解析的是HTML码,不是ASCII码,你用\n后,浏览器看不到换行,但你查看页面的源文件,你可以看到代码原来有\n的地方会出现换行,就是因为\n可以在文本文件中看到,但<br />却是HTML显示换行,呵呵解释起来大概就是这样了,如果还有不明白的就去找后盾人多学习一下吧,有专家教学

推荐
不推荐
展开
收起
金风寺

php在web上运行是多进程还是单进程

php在web上运行是单进程的,具体原因如下:1、PHP是一个单线程的脚本开发语言,它常在Web开发及系统集成中出现。PHP是单进程单线程的,当处理复杂的业务的时候我们会发现他串行执行命令的时候CPU、磁盘、内存等利用的都很低有很多时候都是在排队等待,有的时候我们想并发的让他去执行一批任务然后一起拿解决结果是一件很痛苦的事情(自己用pthread或者其他方式才能解决,但是这很痛苦)开发语言一直在升级变化适应需要。另外,可以考虑通讯使用Swoole。2、解决方案如下:分前后端,前端可以通过消息中间件,同步、异步 调用一个或多个接口。但是socket的扩展确确实实不咋好用。不是普通小企业能做的出来的。

推荐
不推荐
展开
收起
小男

PHP在什么情况下会使用多进程

严格来说 PHP 的多线程指的应该是 pecl 中的 pthreads. 这个东西很少有人会用到,我也不建议大家用,因为通常情况需要用到 pthreads 的时候通常是这个工作不适合 PHP 来做。如果说 PHP 和多线程有什么关系,那就是 PHP 不同于其他的一些后端语言,通常 PHP 的运行环境是由 PHP-FPM 管理的若干个独立的 PHP 进程组成的。因此 PHP 天然地可以非常方便地横向扩充:增加 PHP-FPM 的进程数,甚至把 PHP-FPM 分散在两台服务器上。

推荐
不推荐
展开
收起
申武

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

默认是单进程,可以支持多进程

推荐
不推荐
展开
收起
天心双环

php 多进程 有没有必要加锁

php多进程只有pcntl扩展了,枷锁问题,你是操作文件么,如果多个进程同时操作一个文件的话,必须锁定,这涉及的到文件数据异常的问题,如果使用队列,可以避免锁的问题。

推荐
不推荐
展开
收起
吴亚

php如何进行多进程与异步调用方法

著名的swoole就是PHP异步开发的扩展,怎么用你搜下看看手册,这是PHP很重要的一个分支,也不是一句话两句话说得清。这个和传统的PHP开发有很多不同的地方,并且不能在windows上运行。本回答被网友采纳

推荐
不推荐
展开
收起
铁面天僧

大家对PHP多进程与MySQL的高并发瓶颈是怎么处理的

写过类似的东来西,像这种需源要多次更新同一账号数据的时候,我们的做法是处理完数据后不立即存入mysql,而是放在了redis中,后面的数据更新都在redis修改,在redis积累了数千条数据后在异步的写一次数据到mysql,效果不错卤煮的场景多进程处理建议只负责数据处理,处理完的放redis,在单独用一个脚本定时检测redis达到条件的时候(一定条数或时间)存一次数据到mysql

推荐
不推荐
展开
收起
萧泰

PHP线程安全与非线程安全的区别:如何选择用哪一个

首先,Linux下的PHP,没有线程安全版和非线程安全版之分。从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,直至5.2.1版本开始有Thread Safe(TS,线程安全)和None Thread Safe(NTS,非线程安全)之分。

因为,Linux/Unix系统采用的是多进程的工作方式,而Windows系统采用多线程的工作方式。即:Linux系统的任务调度基本单位是进程,Windows系统的任务调度基本单位是线程(本观点来自自学与总结,不能保证百分之百正确)。

所以,在Windows系统的IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程,且CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。

于是,一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。但存在一个问题,很多常用的PHP扩展是以 Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错搞垮IIS。

为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用,而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。

因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(TS,线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。

名词解析:

  • IIS:Internet Information Services (互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务

  • CGI:Common Gateway Interface (通用网关接口),是外部应用程序(CGI程序)与Web服务器之间的接口标准

  • ISAPI:Internet Server Application Programming Interface (互联网应用程序接口),是为Microsoft所提的Internet server的API

  • FastCGI:CGI存在收到每个请求时都开辟一个进程等不足,FastCGI可以理解为是征对CGI的改进版

推荐
不推荐
展开
收起
孙亮

探讨nginx与php-fpm是不是以多进程多线程方式运行的

这个问题比较初级,官方文档上的资料都是很全的。Nginx 是非阻塞IO & IO复用模型,通过操作系统提供的类似 epoll 的功能,可以在一个线程里处理多个客户端的请求。Nginx 的进程就是线程,即每个进程里只有一个线程,但这一个线程可以服务多个客户端。PHP-FPM 是阻塞的单线程模型,pm.max_children 指定的是最大的进程数量,pm.max_requests 指定的是每个进程处理多少个请求后重启(因为 PHP 偶尔会有内存泄漏,所以需要重启).PHP-FPM 的每个进程也只有一个线程,但是一个进程同时只能服务一个客户端。大多数的 Linux 程序都倾向于使用进程而不是线程,因为 Linux 下相对来说创建进程的开销比较小,而 Linux 的线程功能又不是很强大。你可以去后盾人平台看看,里面的东西不错

推荐
不推荐
展开
收起
查看更多答案
收起