Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/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
Multithreading Apache不是多线程的吗?_Multithreading_Apache - Fatal编程技术网

Multithreading Apache不是多线程的吗?

Multithreading Apache不是多线程的吗?,multithreading,apache,Multithreading,Apache,我在localhost上使用Apache lounge超过3个月。 今天,通过运行一个使用sleep(10)的脚本&同时打开两个浏览器选项卡,我发现我的Apache/PHP安装不是多线程的。(第二个选项卡在第一个选项卡完成后10秒加载) 我已经安装了Apache(Apache.org版本),没有任何更改。 我使用的是PHP5.3.6VC9线程安全 问题是什么?您必须确保使用的是Apache的worker MPM,而不是prefork MPM。根据您的安装情况,您可以简单地将/usr/sbin/h

我在localhost上使用Apache lounge超过3个月。 今天,通过运行一个使用sleep(10)的脚本&同时打开两个浏览器选项卡,我发现我的Apache/PHP安装不是多线程的。(第二个选项卡在第一个选项卡完成后10秒加载)

我已经安装了Apache(Apache.org版本),没有任何更改。 我使用的是PHP5.3.6VC9线程安全


问题是什么?

您必须确保使用的是Apache的worker MPM,而不是prefork MPM。根据您的安装情况,您可以简单地将/usr/sbin/httpd2符号链接到/usr/sbin/httpd2 worker(或安装在任何位置)

当然,在您的情况下,您也可以增加配置中的最大进程数,这将使您能够打开多个选项卡并同时运行它们

大概是这样的:

StartServers       2
MinSpareServers    2
MaxSpareServers    8
ServerLimit        8
MaxClients         8
KeepAlive off

我也有同样的问题。我用
sleep(4)
从Chrome的3个浏览器选项卡向一个本地脚本发送请求,响应彼此等待。但是我检查了如果我从Chrome发送了一个,从Firefox发送了第二个,会发生什么情况?这种情况不会重现。

看起来你偶然发现了一个浏览器功能: 后台选项卡仅在切换到该选项卡时加载;这是许多浏览器的当前默认设置(请检查您的设置或使用两种不同的浏览器进行检查)。
问候:-)

谢谢你,加布里埃尔,我在提问之前已经更改了此设置,但没有任何更改。如何切换到MPM?如果您成功地增加了apache进程的最大数量,这应该解决了您的问题,更改为多线程MPM应该不会有任何区别。您可以发布相关的apache配置吗?另一种可能性是,您将MySql用于myisam表,当一个查询在表上运行时,整个表都会被锁定,因此需要访问该表的其他进程/线程必须等待。切换到MySql中的innodb表应该可以解决这个问题。不,在我的测试文件中除了:“我还安装了最新版本的apache和php。甚至安装了WAMP服务器。还添加了建议的选项,但没有任何更改。这是我的httpd.conf:从日志来看,服务器似乎已经是多线程的,所以这不是问题所在。这是一个非常有缺陷的测试。在典型的基于PHP会话的站点中,您只需等待会话文件由先前的脚本发布即可。他说第二个标签在第一个标签后10秒加载,所以可能不会。