Linux에서 usleep과 sleep의 차이점: sleep 함수는 지정된 초 동안 정지를 수행하는 데 사용되는 반면, usleep 함수는 지정된 마이크로초 동안 정지를 수행하는 데 사용됩니다. sleep은 비시스템 호출로, 라이브러리 함수로 구현되며, 알람 시간을 Alarm()을 통해 설정합니다. 시간 단위가 마이크로초라는 점을 제외하면 usleep은 사용 중인 sleep과 유사합니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
(1) sleep()---------초 단위
헤더 파일:
#include <windows.h> // 在VC中使用带上头文件 #include <unistd.h> // 在gcc编译器中,使用的头文件因gcc版本的不同而不同
기능: 지정된 초 동안 정지를 실행합니다
구문:
unsigned int sleep(unsigned int seconds);
sleep()은 비시스템 호출입니다. sleep()은 라이브러리 함수에 구현되어 있으며, 알람()을 통해 알람 시간을 설정하고 SIGALARM 신호에 대한 프로세스를 일시 중지합니다.
sleep()은 두 번째 수준까지만 정확할 수 있습니다. sleep()은 초 매개변수에 지정된 시간에 도달하거나 신호에 의해 중단될 때까지 현재 프로세스를 일시 중지합니다.
#include
return: 프로세스가 초 매개변수에 지정된 시간까지 일시 중지된 경우 성공하면 0이 반환됩니다. 신호 중단이 있으면 남은 초가 반환됩니다.
예:
#include <windows.h> #include<stdio.h> int main() { int a; a=1; printf("hello"); sleep(a); /* VC 使用Sleep*/ printf("world"); return 0; }
(2) usleep()---in 마이크로초
헤더 파일:
#include <unistd.h>
기능: usleep 함수는 일정 시간 동안 프로세스를 일시 중지하며 단위는 마이크로초( 100만분의 1초);
구문:
void usleep(int micro_seconds);
시간 단위가 마이크로초라는 점을 제외하면 사용 중인 sleep()과 유사합니다. 게다가 구현 방식도 다르죠. sleep은 알람을 이용해서 구현하기 때문에 시간 단위가 s인 반면, usleep의 시간 단위는 us
로 확실히 알람으로는 구현되지 않기 때문에 구현 방식은 다르지만 둘 다입니다. Linux에서는 사용되지만 Windows에서는 사용할 수 없습니다. unistd.h에 sleep과 usleep이 모두 정의되어 있기 때문입니다.
#include
return: 프로세스가 초 매개변수에 지정된 시간까지 일시 중지된 경우 성공하면 0이 반환됩니다. 신호 중단이 있으면 남은 마이크로초가 반환됩니다.
반환 값: 없음
내용 설명: 이 함수는 프로그램 실행을 일시적으로 중지할 수 있습니다. micro_seconds 매개변수는 일시 중지할 마이크로초(us) 수입니다.
참고:
이 기능은 Windows 운영 체제에서는 작동하지 않습니다. Linux 테스트 환경에서 사용됩니다.
참고: usleep()은 일시 중지된 프로세스를 지연시키는 데 사용되는 sleep()과 유사합니다. 프로세스가 일시 중단되고 재실행 대기열에 배치됩니다.
일반적인 상황에서 지연 시간이 초 단위일 때는 최대한 sleep() 함수를 사용하세요.
지연 시간이 수십 밀리초(1ms = 1000us) 이하인 경우 가능하면 usleep() 함수를 사용하세요. 이런 방식으로 CPU 시간을 최대한 활용할 수 있습니다
권장 학습: Linux 비디오 튜토리얼
위 내용은 리눅스에서 usleep과 sleep의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!