Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php、多线程和其他问题_Php - Fatal编程技术网

php、多线程和其他问题

php、多线程和其他问题,php,Php,早晨 我对php的工作方式有些怀疑。我在书上到处都找不到答案,所以我想直截了当地说;) 下面是: 假设我们有一台安装了php+apache的服务器。以下是我的信念: 1-php一次可以处理一个请求。apache一次是否可以处理多个线程并不重要,因为最终调用的php解释器是单线程的 2-根据信念1,我相信如果服务器在同一时间收到4个调用,这些调用将排队并一次执行1个。最后提出请求的人得到最后的响应 3-从1到2,如果我cron调用一个url,该url对应于执行一些繁重/耗时的任务的脚本,那么我会降

早晨

我对php的工作方式有些怀疑。我在书上到处都找不到答案,所以我想直截了当地说;)

下面是:

假设我们有一台安装了php+apache的服务器。以下是我的信念:

1-php一次可以处理一个请求。apache一次是否可以处理多个线程并不重要,因为最终调用的php解释器是单线程的

2-根据信念1,我相信如果服务器在同一时间收到4个调用,这些调用将排队并一次执行1个。最后提出请求的人得到最后的响应

3-从1到2,如果我cron调用一个url,该url对应于执行一些繁重/耗时的任务的脚本,那么我会降低服务器的速度,直到脚本返回

什么是真的?什么是假的


干杯

我的水晶球表明您正在使用PHP会话,并且同时有请求(iFrame或AJAX)排队。问题是默认会话处理程序使用文件,并且
session\u start()
锁定数据文件。您应该快速读取会话数据,然后调用以释放文件。

我的水晶球表明您正在使用PHP会话,并且您的同时请求(iFrame或AJAX)正在排队。问题是默认会话处理程序使用文件,并且
session\u start()
锁定数据文件。您应该快速读取会话数据,然后调用释放文件。

我看不出PHP为什么不能同时处理多个请求。也就是说,根据脚本的类型,处理单个客户端的请求可能是半真实的


许多脚本使用会话。调用
session\u start()
时,将打开并锁定会话。当脚本执行结束时,会话将关闭并解锁(这可以手动完成)。当同一会话有多个请求时,第一个请求打开并锁定会话,第二个请求必须等待会话解锁。这可能会给人一种印象,即不能同时执行多个PHP脚本,但这(部分)仅适用于使用同一会话的请求(换句话说,来自同一浏览器的请求)。来自两个客户端(浏览器)的请求可以并行处理,只要它们不使用在其他请求中被锁定/解锁的资源(文件、数据库表等)。

我看不出为什么PHP不能同时处理多个请求。也就是说,根据脚本的类型,处理单个客户端的请求可能是半真实的


许多脚本使用会话。调用
session\u start()
时,将打开并锁定会话。当脚本执行结束时,会话将关闭并解锁(这可以手动完成)。当同一会话有多个请求时,第一个请求打开并锁定会话,第二个请求必须等待会话解锁。这可能会给人一种印象,即不能同时执行多个PHP脚本,但这(部分)仅适用于使用同一会话的请求(换句话说,来自同一浏览器的请求)。来自两个客户端(浏览器)的请求可以并行处理,只要它们不使用在其他请求中被锁定/解锁的资源(文件、数据库表等)。

你是在抛弃关于PHP的随机疯狂假设,还是你真的在某个地方读到了这些?我想,我们的答案是不可接受的:-(不要把
请求
线程
混为一谈……你是在抛弃关于PHP的随机疯狂假设,还是真的在某个地方读到了这些假设?我认为,我们的答案是不可接受的:-(不要将
请求
线程
混淆…有时需要在请求过程中修改
$\u会话
。具体取决于框架。其他锁定资源(非会话文件、数据库表等)也可能有问题)。不过,我同意锁定的会话文件可能是最常见的原因。有时在请求过程中需要修改
$\u session
。具体取决于框架。其他锁定的资源(非会话文件、数据库表等)也可能有问题.不过,我同意锁定会话文件可能是最常见的原因。我想我在开发人员编写的脚本中混淆了线程(语言中没有多线程)解释器级别的线程。解释器可以有多个实例,但情况不同。我想我在开发人员编写的脚本中混淆了线程(语言中没有多线程)解释器级别的线程。解释器可以有多个实例,但情况不同。