Эта проблема:
Я студент по программированию и в настоящее время изучаю PHP. Очевидно, Java может определять потоки для таких вещей, как таймеры обратного отсчета; однако мне сказали, что у PHP могут быть проблемы со стандартной функцией обратного отсчета, использующей задержку или даже логику time (), так как это приведет к спин-блокировке. Как мне избежать спин-блокировки и иметь простой и эффективный таймер обратного отсчета?
Краткое изложение того, что я пытаюсь решить:
Мне нужно создать 30-секундный таймер на внутреннем PHP. Как только таймер завершится, 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!";
}
}
Задача ещё не решена.
Других решений пока нет …