我正在构建一个大型php框架。现在我们正在尝试利用每个脚本中所有可能的内核。
如何跨多个内核运行一个脚本。例如,假设我在一个php文件上有两个函数,它们进行大量的处理。如何在两个不同的处理器上同时运行这两个程序,然后将结果返回给脚本并继续其余的处理?
有没有其他脚本可以用来创建这样的web应用程序…我试着在网上寻找,但我找到的解决方案只是在桌面应用程序
没有这样的多处理方法。你可能要做的是创建一个主php文件,然后有一个文件做一些事情,然后进行多个ajax调用,为它打开多个线程。这就是我所做的。简单,不太复杂的设置
您需要查看PCNTL。请记住它是为CGI-mod设计的,但它可以用于apache。
示例用法:
<?php
// Create the MySQL connection
$db = mysql_connect($server, $username, $password);
$pid = pcntl_fork();
if ( $pid == -1 ) {
// Fork failed
exit(1);
} else if ( $pid ) {
// We are the parent
// Can no longer use $db because it will be closed by the child
// Instead, make a new MySQL connection for ourselves to work with
$db = mysql_connect($server, $username, $password, true);
} else {
// We are the child
// Do something with the inherited connection here
// It will get closed upon exit
exit(0);
?>
你不能在php中使用线程。这些旧的帖子可能有用:
- PHP线程和同步PHP中的线程
所以我猜你将需要通过任何ipc选项进行分叉和同步,所以这篇旧的文章可能会有所帮助:如何在PHP客户端和C守护进程服务器之间进行ipc ?