【发布时间】:2020-04-21 13:31:44
【问题描述】:
我正在使用 amphp/parallel-functions 在 parallel 中运行两个 for loops。我想知道如何查看并行打印的实时输出?我正在考虑打印到两个不同的终端。有可能吗?如果不是,我如何跟踪并行或顺序运行的输出?
<?php
require "vendor/autoload.php";
use Amp\Promise;
use Amp\ParallelFunctions;
$promises[1] = ParallelFunctions\parallel(function (){
for ($i=0; $i<50; $i++){
echo 'Promise-1 : '. $i . PHP_EOL;
}
})();
$promises[2] = ParallelFunctions\parallel(function (){
for ($i=0; $i<50; $i++){
echo 'Promise-2 : '. $i .PHP_EOL;
}
})();
Promise\wait(Promise\all($promises));
当前输出似乎是连续的
Promise-1 : 0
Promise-1 : 1
Promise-1 : 2
Promise-1 : 3
Promise-1 : 4
Promise-2 : 0
Promise-2 : 1
Promise-2 : 2
Promise-2 : 3
Promise-2 : 4
注意我使用的是mac,这纯粹是为了在我的本地测试。
【问题讨论】:
-
time() 函数可以帮到你
-
@Shalior 这似乎是个好主意!!但是,虽然循环很长,但最好同时在两列中打印或在两个单独的终端中打印。有什么办法吗?