Php için guzzle/promises kütüphanesi varmış. Bu sorunu çözeceğini sanıyorum.
Deneme için aşağıdaki kodu yazdım.
<?php
require __DIR__ . '/vendor/autoload.php';
for ($i = 0; $i < 3; $i++) {
$promise = new \GuzzleHttp\Promise\Promise();
$promise->then(function ($value) use ($i) {
$xml = file_get_contents($value);
echo "$i - .$xml <br/>";
});
$promise->resolve("http://pullpic.com/media/2049439257308820611_4519503209");
$promises[] = $promise;
}
\GuzzleHttp\Promise\all($promises)->wait();
echo "bitti";