问题:
我是一名编程学生,目前正在学习PHP。显然,Java可以为倒数计时器之类的东西指定线程;但是,我被告知PHP可能会出现使用延迟甚至是time()逻辑的标准倒计时功能的问题,因为它会导致自旋锁。我如何避免使用自旋锁并拥有简单有效的倒数计时器?
我想要解决的问题摘要:
我需要在后端PHP上创建一个30秒的计时器。一旦计时器完成,PHP将使用我的Slack API与特定的Slack通道进行通信 - 让每个人都知道咖啡已经完成,等等。据说,我需要能够启动多个时钟(因为这两个咖啡都有)并且必须避免旋转锁定,因为它会杀死所需的多次倒计时能力。
到目前为止代码导致自旋锁:
$startTime = time();
$actualTime = (int)$startTime;
$finishTime = ((int)$startTime) + 30;
var_dump($startTime);
var_dump($actualTime);
var_dump($finishTime);
while(($finishTime - $actualTime) > 0) {
usleep(250000);
$actualTime = ((int)time());
if ($actualTime === $finishTime) {
echo "Tea is ready!";
}
}