usleep 是 php 中以微秒为单位暂停脚本执行的阻塞函数,php 8.0 完全支持,参数须为整数,最小有效值为 1,实际延迟受系统调度影响,web 环境中需谨慎使用。

usleep 是 PHP 中用于暂停脚本执行的函数,单位是微秒(μs),在 PHP 8.0 中完全可用,用法与之前版本一致。
基本用法:传入微秒数
函数原型:usleep(int $microseconds): void
参数必须是整数,表示要暂停的微秒数(1 秒 = 1,000,000 微秒)。
- 最小有效值为 1(暂停 1 微秒),0 会被忽略,不产生延迟
- 实际暂停时间可能略长于指定值,受系统调度精度和负载影响
- 该函数会阻塞当前进程,期间无法处理其他请求(尤其在 Web SAPI 下需谨慎)
常见使用示例
比如想让脚本暂停 500 毫秒(即 500,000 微秒):
usleep(500000); // 暂停半秒
再如模拟精细延时场景(如硬件通信、轮询间隔):
usleep(10000); // 暂停 10 毫秒
注意事项
- 不能在 CLI 以外的某些 SAPI(如 Apache mod_php)中长时间调用,可能触发超时或被服务器中断
- PHP 8.0 不支持浮点数参数,传入小数会报
TypeError - 若需更高精度或非阻塞等待,应考虑
stream_select()、协程(如 Swoole)或异步 I/O 方案 - 调试时避免过小值(如
usleep(1)),多数系统实际最小调度粒度在 10–15 毫秒量级,微秒级数值往往无实际意义
替代方案参考
如果需要更可控的延迟行为:
-
time_nanosleep():支持纳秒级,但精度仍受限于系统 -
sleep():秒级,适合粗粒度暂停 - 事件循环(如 ReactPHP、Swoole):适用于高并发、低延迟响应场景
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











