К сожалению, вы не опубликовали весь код.Я полагаю, вы делаете что-то вроде
$mh = curl_multi_init();
for ($i = 0; $i < $desiredThreadsNumber; $i++) {
$ch = curl_init();
// set up $ch here
curl_multi_add_handle($mh, $ch);
}
Вы должны понимать, что вы еще не запускали потоки здесь. curl_multi_exec () запускает все потоки.Но он не может запускать все потоки $ wantedThreadsNumber одновременно.Если вы посмотрите пример на странице curl_multi_exec () php.net, вы увидите, что вам нужно подождать, пока curl_multi_exec () запустит все потоки.Другими словами, вам нужен следующий вложенный цикл:
$running = null;
do {
do {
$mrc = curl_multi_exec($mh, $running);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
} while($running > 0);
В конце позвольте мне предложить вам прочитать эту статью http://www.onlineaspect.com/2009/01/26/how-to-use-curl_multi-without-blocking/ и использовать оттуда фрагмент кода, я использовал его в 2 или3 проекта.