parallel\Runtime::close

(0.8.0)

parallel\Runtime::closeRuntime Graceful Join

説明

public parallel\Runtime::close(): void

Shall request that the runtime shutsdown.

注意:

Tasks scheduled for execution will be executed before the shutdown occurs.

Exceptions

警告

Shall throw parallel\Runtime\Error\Closed if Runtime was already closed.

add a note

User Contributed Notes 1 note

up
1
andre at webtechnik dot ch
4 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 threadlogToFile("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 secondssleep(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);}?>
To Top