1. php是单线程单进程的么
每个PHP文件的执行是单线程的,但是,服务器(apache/nigix/php-fpm)是多线程的。每次对某个PHP文件的访问服务器都会创建一个新的进程/线程,用来执行对应的PHP文件.
2. php单线程与nodejs线性机制相同吗
php在处理并发的时候是通过多线程处理,这样会导致硬件成本的增加,特别是一些频繁I/0的项目,很多的线程被阻塞,cpu得不到充分的利用。
node:node的核心理念是单线程,通过事件和回调实现并发。既然是单线程,那硬件自然比较低。
那单线程怎么实现并发呢?我认为正是这种实现的方法让大家耳目一新,所以才会让node如此,
并发实现原理:比如一百个请求要做一百件事,当第一个请求执行到i/o的时候立马挂起,不等待i/o成功,直接执行下一个事件,直到i/o完毕,这是触发回调事件,回调事件的优先级会比普通事件的优先级高,就是这样通过异步来实现单线程的并发处理。保证了线程永远有事做,不会等待。
3. 请问php 多线程要怎么做呢,我下面这段程序耗时和单线程一样的
$st=microtime(true);//这一行之后有改动
$t=array();
for($i=0;$i<5;$i++)
{
$a=newRequest();
$a->start();$t[]=$a;
}
foreach($tas$a)$a->join();
$ed=microtime(true);//这一行之前有改动
你代码中的join用得不对...
4. 单线程和多线程是什么意思
多线程:多线程程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行。
单线程:单线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。
(4)php单线程和多线程扩展阅读:
由于多线程应用程序将程序划分成独立的任务,因此可以在以下方面显着提高性能:多线程技术使程序的响应速度更快,因为用户界面可以在进行其他工作的同时一直处于活动状态。 当前没有进行处理的任务可以将处理器时间让给其他任务。
占用大量处理时间的任务可以定期将处理器时间让给其他任务。 可以随时停止任务。 可以分别设置各个任务的优先级以优化性能。
5. PHP是单线程的 - PHP进阶讨论
刚版主那个链接里的“多线程”竟然是开打新的http链接处理。。。php在apache、linux上面是每个请求打开一个处理进程,给进程置环境变量,然后由解释器顺序执行php代码,应该算是单线程的了吧。多线程的只能是通过某些接口调用外部的进程来协助处理。
6. php真的有多进程,多线程吗
通常意义上所说的多进程是由apache调度的,比如html页面同时发送5个ajax请求的时候,那么5个php进程会几乎同时进行。
PHP本身是不存在多线程的,总是单线程的方式执行。
误区就是PHP可以通过特别的手段用多进程的方式来模拟多线程,不过几乎用不到。因为PHP不像java之类的本身有进程管理机制,因此模拟的多线程非常不好控制,同时效率也并不高。
7. php在web上运行是多进程还是单进程
php在web上运行是单进程的,具体原因如下:
1、PHP是一个单线程的脚本开发语言,它常在Web开发及系统集成中出现。
PHP是单进程单线程的,当处理复杂的业务的时候我们会发现他串行执行命令的时候CPU、磁盘、内存等利用的都很低有很多时候都是在排队等待,有的时候我们想并发的让他去执行一批任务然后一起拿解决结果是一件很痛苦的事情(自己用pthread或者其他方式才能解决,但是这很痛苦)开发语言一直在升级变化适应需要。另外,可以考虑通讯使用Swoole。
2、解决方案如下:
分前后端,前端可以通过消息中间件,同步、异步 调用一个或多个接口。但是socket的扩展确确实实不咋好用。不是普通小企业能做的出来的。
8. 单线程和多线程的区别
多线程和单线程本质区别是:
(1)多线程的产生并不是因为发明了多核CPU甚至现在有多个CPU+多核的硬件,也不是因为多线程CPU运行效率比单线程高。单从CPU的运行效率上考虑,单任务进程及单线程效率是最高的,因为CPU没有任何进程及线程的切换开销,
(2)实际上,多线程的出现主要为了解决IO设备的读写速度往往比CPU的处理速度慢造成的单线程程序运行阻塞问题,一个极端的例子就是如果你需要用户在键盘上输入一个数据,当用户没有输入前,单线程程序就阻塞了,多线程程序就可以放个音乐或继续干一些程序中除了键盘输入外的工作,因此,多线程能提高因程序由于等待某个资源阻塞时其他资源的利用率(是利用率不是效率)。
(3)因此多线程与单线程的最大区别,多线程程序能在等待某个IO操作时,继续完成非这个IO的其他工作,有利于提高完成整个任务的效果和速度。此外,多线程程序与单线程程序对程序设计也有不同的流程和结构,多线程需要考虑对静态变量等资源的操作互锁及程序执行的同步问题。
9. PHP 到底是单进程还是多进程
默认是单进程,可以支持多进程