Niestety nie pisać cały kod. Przypuszczam, że robisz coś takiego, jak:
$mh = curl_multi_init();
for ($i = 0; $i < $desiredThreadsNumber; $i++) {
$ch = curl_init();
// set up $ch here
curl_multi_add_handle($mh, $ch);
}
Powinieneś zrozumieć, że jeszcze nie uruchamiałeś wątków. curl_multi_exec() uruchamia wszystkie wątki. Ale nie może jednocześnie uruchomić wszystkich wątków $ desiredThreadsNumber. Jeśli spojrzysz na przykład na stronie php.net curl_multi_exec(), zobaczysz, że musisz poczekać, aż curl_multi_exec() uruchomi wszystkie wątki. Innymi słowy, trzeba następny zagnieżdżonych pętli tutaj:
$running = null;
do {
do {
$mrc = curl_multi_exec($mh, $running);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
} while($running > 0);
Na koniec pozwolę sobie zasugerować, aby przeczytać ten artykuł http://www.onlineaspect.com/2009/01/26/how-to-use-curl_multi-without-blocking/ i użyć fragmentu kodu stamtąd, użyłem go w 2 lub 3 projektów.
Czy chodziło Ci o "sen (1)"? –