我的问题很简单。
第一个类,它扩展了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()
功能,但仅仅是片刻。写入文件很重要,我认为在写作结束时线程已被杀死(?)。但问题是为什么?