LonghornPHP 2026

parallel\Runtime::close

(0.8.0)

parallel\Runtime::closeSe une graciosamente a la ejecución

Descripción

public function parallel\Runtime::close(): void

Solicita que la ejecución se detenga.

Nota:

Las tareas programadas para la ejecución se ejecutarán antes de que se produzca la detención.

Excepciones

Advertencia

Lanza una parallel\Runtime\Error\Closed si Runtime ya estaba cerrado.

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 1 note

up
3
andre at webtechnik dot ch
5 years ago
This is a simple test to show how close and kill works.
<?php
/**
 * Test close and kill
 * - main thread writes to main.log
 * - second thread writes to thread.log and shutdown.log
 * - main thread runs 10 seconds, second thread runs 20 seconds
 * - close will wait until second thread stops
 * - kill don't waits and kill immediately the second thread
 */
// main thread
logToFile("start");
// create a second thread
$thread = new parallel\Runtime();
$thread->run(function(){
 
 // what to do if thread shuts down
 register_shutdown_function ( function(){file_put_contents("shutdown.log",date('Y-m-d H:i:s') . "\t last will");} );
 // loop and count for 20 seconds
 $c=0;
 while ($c++ < 20){
 sleep(1);
 echo $c."|";
 file_put_contents("thread.log",date('Y-m-d H:i:s') . "\t" . $c.PHP_EOL, FILE_APPEND);
 }
});
// sleep 10 seconds
sleep(10);
// mainthread kills thread immediately
//$thread->kill();
// mainthread waits on thread
$thread->close();
logToFile("end");
function logToFile($msg){
 echo PHP_EOL.$msg.PHP_EOL;
 file_put_contents("main.log",date('Y-m-d H:i:s') . "\t" . $msg.PHP_EOL, FILE_APPEND);
}
?>
+add a note

AltStyle によって変換されたページ (->オリジナル) /