Pthread - 线程不运行?

时间:2016-04-11 12:56:03

标签: php multithreading laravel-4

我的问题很简单。

第一个类,它扩展了Thread类:

class FileSender extends Thread {
    private $client;

    public function __construct() {
        // it goes here, since it's called in the main thread
    }

    private function write($buff) {
        File::append(public_path()."/test.log", $buff.PHP_EOL);
    }

    public function run() {
        $this->write("test");
        while (true) {
            $avatar = Pool::getNextAvatar();
            if ($avatar !== null) {
                $this->write("Preparing to send...");
                // bla, bla, bla...
            } else {
                $this->write("No file to send");
                sleep(60);
            }
        }
    }
}

来电者:

$fs = new FileSender();
$fs->start();

while (true) {
    sleep(10);
}

未填充public/test.log中的文件。 你们知道为什么吗?

如果我拨打run()它就可以正常工作,但我希望它完全异步。

修改

事实上,它只进入了run()功能,但仅仅是片刻。写入文件很重要,我认为在写作结束时线程已被杀死(?)。但问题是为什么?

0 个答案:

没有答案