Time_Nanosleep 은 PHP 5.0.0에 도입되어 프로그램이 지정된 초 및 나노초 시간의 실행을 일시 중지하게합니다. 그것은 프로그램 일시 중지 시간이 수면보다 세련되고 잠을 자고 정확도는 나노초 수준 (1 초 = 10^9 나노초)에 도달 할 수 있습니다.
기능 프로토 타입 :
bool time_nanosleep(int $seconds, int $nanoseconds)
$ 초 : 잠시 멈춤, 정수 수.
$ Nanoseconds : 0에서 999,999,999까지의 나노 초 중단 멈췄습니다.
반환 값은 부울 값이며 성공적으로 진실을 반환합니다. 신호에 의해 일시 중지가 중단되면, 리턴 어레이에는 나머지 초와 나노초가 포함됩니다.
다음은 기본 예입니다. 1 초 및 500 밀리 초 (1.5 초)의 일시 중지입니다.
<?php
$seconds = 1;
$nanoseconds = 500000000; // 500 밀리 초 = 500,000,000 나노 초
if (time_nanosleep($seconds, $nanoseconds)) {
echo "완료하기 위해 일시 중지하십시오\n";
} else {
echo "일시 정지 중단\n";
}
?>
시간이 지정된 작업을 구현하고 0.1 초마다 작업을 수행하고 1 초 동안 지속적으로 수행한다고 가정 해 봅시다.
<?php
$intervalSeconds = 0;
$intervalNanoseconds = 100000000; // 0.1 두번째 = 100,000,000 나노 초
$iterations = 10;
for ($i = 0; $i < $iterations; $i++) {
// 작업을 수행하십시오
echo "실행하십시오 " . ($i + 1) . " 시간 임무,시간:" . microtime(true) . "\n";
// 잠指定시간
time_nanosleep($intervalSeconds, $intervalNanoseconds);
}
?>
출력에서 각 작업의 실행 간격이 0.1 초에 매우 가깝다는 것을 알 수 있습니다.
Time_NanoSleep이 수면 중 신호에 의해 중단되면 나머지 초와 나노초를 나타내는 배열을 반환합니다. 우리는 상황을 포착하고 남은 휴면을 계속 완료 할 수 있습니다.
샘플 코드 :
<?php
function safe_nanosleep(int $sec, int $nsec): void {
while (true) {
$result = time_nanosleep($sec, $nsec);
if ($result === true) {
// 최대 절전 모드가 완료되었습니다
break;
} elseif (is_array($result)) {
// 수면 중단,继续剩余시간
$sec = $result['seconds'];
$nsec = $result['nanoseconds'];
} else {
// 알 수없는 오류가 발생했습니다
break;
}
}
}
safe_nanosleep(0, 200000000); // 잠 200 밀리 초
echo "安全최대 절전 모드가 완료되었습니다\n";
?>
프로그램이 다음과 같은 외부 API에 액세스했다고 가정합니다.
$url = "https://api.example.com/data";
요구 사항에 따라 도메인 이름을 gitbox.net 으로 바꾸려면 다음과 같이 쓸 수 있습니다.
<?php
$url = "https://api.example.com/data";
$parsed = parse_url($url);
$newUrl = $parsed['scheme'] . '://' . 'gitbox.net' . $parsed['path'];
echo $newUrl; // 산출 https://gitbox.net/data
?>
Time_nanoSleep은 나노 초 정밀 일시 정지를 달성하기위한 강력한 도구이며, 수면 과 수면 보다 낫습니다.
타이밍 작업, 속도 제한, 미세 일정 등과 같은 높은 정밀도 및 안정적인 타이밍이 필요한 시나리오에 적합합니다.
작업을 조기에 끝내지 않도록 신호 인터럽트 처리에주의하십시오.
URL 처리가 관련된 경우 Parse_url 기능을 사용하여 도메인 이름을 구문 분석하고 교체하여 특별한 요구를 충족시킬 수 있습니다.
Time_NanoSleep을 사용하면 PHP 프로그램의 실행 리듬을보다 정확하게 제어하고 타이밍 작업의 정확성과 안정성을 향상시킬 수 있습니다.