【发布时间】:2013-07-22 21:03:17
【问题描述】:
$a=new FileProcessing($path1);
$b=new FileProcessing($path2);
$a->doProcessFile();
$b->doProcessFile();
此代码运行doProcessFile() for $a 然后运行doProcessFile() for $b 在顺序。
我想在 parallel 中运行 doProcessFile() for $a 和 doProcessFile() for $b,这样我就可以在 parralel 中处理不同的文件。
我可以在 PHP 中做到这一点吗?
如我所见,PHP 仅按顺序处理脚本。现在我想知道我是否可以在 parralel 中运行同一脚本的多个实例,运行脚本之间的区别是我在调用每个脚本时传递的参数。例如:php myscript.php [path1] 然后我用不同的参数第二次调用这个脚本。
【问题讨论】:
-
没有。 PHP 不是多线程语言。您唯一的办法是
exec()或以其他方式生成两个单独的 php 实例,每个实例都有各自的路径。 -
就像@MarcB 提到的 PHP 不是多线程的。除了使用 exec 您还可以查看 beanstalkD kr.github.io/beanstalkd 之类的解决方案
-
@tlens - php 不是多线程的? www.php.net/Thread 不同意你的观点:/
-
@N.B.pthreads 不是核心的一部分。所以答案依然存在。然而,这是一个可行的选择。
标签: php