百科狗-知识改变命运!
--

time_sleep_until() - php 选项信息函数

梵高12个月前 (11-21)阅读数 10#技术干货
文章标签脚本

time_sleep_until()

(PHP 5 >= 5.1.0, PHP 7)

使脚本睡眠到指定的时间为止。

说明

time_sleep_until(float $timestamp): bool

使脚本睡眠到指定的$timestamp。

参数

$timestamp

将脚本唤醒的时间戳。

返回值

成功时返回TRUE,或者在失败时返回FALSE

更新日志

版本说明
5.3.0自此,函数在Windows平台可用。

错误/异常

time_sleep_until() - php 选项信息函数

如果设定的$timestamp为过去的时间,脚本将会产生一个E_WARNING级别的错误。

范例

Example #1time_sleep_until()的一个例子

注释

Note:所有的信号会被延迟至脚本唤醒以后。

参见

  • sleep() 延缓执行
  • usleep() 以指定的微秒数延迟执行
  • time_nanosleep() 延缓执行若干秒和纳秒
  • set_time_limit() 设置脚本最大执行时间
Not realising that this function existed, I wrote something similar, but it has the additional facility to specify a minimum pause even if the target time has already been reached, for instance in a processor-intensive loop.
It's in seconds rather than microseconds (it's intended for heavy-duty CLI scripts), but that could easily be changed by using microtime(true) and usleep if greater granularity was required. 
At least on my Windows machine, the time_sleep_until function appears to calculate the number of microseconds between now and the sleep-until timestamp, and it appears to use unsigned 32-bit math in this calculation. This roundoff leads to a maximum sleep time of just under 4295 seconds (1 hour, 11 minutes, 35 seconds). To get longer sleep times, while still using time_sleep_until to minimize processor overhead, the following loop may be some help to you:

Of course, one could use something like "cron" instead, to avoid the script doing the extended sleep. Also note that time_nanosleep appears to do similar math, but it is somewhat more intuitive that the seconds parameter has an upper limit on what it can be. Still, both functions might report a warning when waking up prematurely due to roundoff.
if you for some reason need a constant-time implementation of realpath(), try

for example, a realtime that always uses exactly 1 millisecond (should be more than enough for SSD-based servers, perhaps rotating harddrive based servers may need something closer to 10 milliseconds, i don't know):

and you can use $constant_time_success to see if you needed more time (and thus failed to do realpath() in constant-time), or if you succeeded.

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)