Есть такой код:
<?php
class WorkerThreads extends Thread
{
private $workerId;
private $url;
public function __construct($string)
{
$this->url = $string;
}
public function run()
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $this->url);
if ($this->post) {
curl_setopt($curl, CURLOPT_POSTFIELDS, $this->post);
}
$response = curl_exec($curl);
//echo $response;
curl_close($curl);
}
}
$data = file('urls.txt');
$data_size = count($data);
// Worker pool
$workers = [];
$t_count = 100;
$flag = 1;
$k = 0;
while($flag === 1)
{
$c_w = count($workers);
if($c_w < $t_count)
{
for($i = $c_w; $i<$t_count - $c_w;$i++)
{
if($k >= $data_size)
{
$flag = 0;
break;
}
$url = explode("|",$data[$k]);
$workers[$i] = new WorkerThreads($url[0]);
echo $k." ".$url[0]."\n";
$workers[$i]->start();
$k++;
}
}
$c_w = count($workers);
for($i=0;$i<$c_w;$i++)
{
if($workers[$i]->join())
{
//echo "joining $i\n";
unset($workers[$i]);
}
}
}
?>
Почему-то при запуске постоянно вылетает исключение:
Fatal error: Uncaught RuntimeException: cannot start WorkerThreads, out of reso
rces in C:\Users\alex\Desktop\test.php:56
Stack trace:
#0 C:\Users\alex\Desktop\test.php(56): Thread->start()
#1 {main}
thrown in C:\Users\alex\Desktop\test.php on line 56
Но это только в xampp и на php 7 версии x86, а в х64 версии все нормально. В чем может быть дело? Инфы по теме не так уж много. Спасибо.