2017-08-16 2 views
0

Ich habe einen Code zum Testen und ich verstehe nicht, warum es angehalten wird. Das Skript führt nur 799 Übergänge durch.PHP Thread aufhören zu arbeiten

set_time_limit(0); 
ini_set('display_errors', 0); 

Klasse

class CheckIpThread extends Thread { 
    private $ip; 
    public $data = null; 
public function __construct ($ip_to_check) { 
    $this->ip = $ip_to_check; 
    } 

public function run() { 
    $this->data = th($this->ip); 
    $this->kill;//This line probably does not matter 
} 
} 

End-Klasse

for($a=0;$a<=2000;$a=$a+100) 
{th_($a);} 

function th_($co){ 
$threads = []; 
for($a=0;$a<=100;$a++){ 
$thread = new CheckIpThread($co+$a); 
$threads []= $thread; 
$thread->start(); 
} 
foreach ($threads as $thread) { 
$thread->join(); 
} 

foreach ($threads as $thread) { 
echo_($thread->data); 
} 
} 


function th($wsad) 
{return $wsad;//} 

Live viev

function echo_($text,$def=0) 
{ 
    ob_flush(); 
    flush(); 
    //usleep(200); 
    if($def===0) 
    {var_dump($text);} 
if($def===1) 
    {echo($text);} 
    echo"</br>"; 
ob_end_flush(); 

} 

//return int(0) ...int(799) and browser waiting but nothing happens

Antwort

0

Prüfung Apache Fehlerprotokoll, ma y Speicherüberlauf.

+0

Es wurden keine Fehler gefunden. Auch wenn ich ini_set ('memory_limit', '2512M'); nichts ändern – Sasiadstar

+0

Ich überprüfte das CLI-Skript und die Kante und es funktioniert. Aber es funktioniert nicht in Chrome anderen Browsern, die ich nicht habe. – Sasiadstar

+0

update Ich erhöhte den Wert und sprang den Fehler. Fataler Fehler: Uncaught-Ausnahme 'RuntimeException' mit der Nachricht 'Pthreads hat festgestellt, dass der CheckIpThread nicht gestartet werden konnte, dem System fehlen die erforderlichen Ressourcen oder das vom System auferlegte Limit würde überschritten' in C: \ xampp \ htdocs \ test \ Benchmark.php: 34 Stapelverfolgung: # 0 C: \ xampp \ htdocs \ test \ Benchmark.php (34): Thread-> start() # 1 C: \ xampp \ htdocs \ test \ Benchmark.php (22): th_ (900) – Sasiadstar

Verwandte Themen