>  기사  >  운영 및 유지보수  >  리눅스에서 usleep과 sleep의 차이점은 무엇입니까?

리눅스에서 usleep과 sleep의 차이점은 무엇입니까?

WBOY
WBOY원래의
2022-07-19 15:00:564064검색

Linux에서 usleep과 sleep의 차이점: sleep 함수는 지정된 초 동안 정지를 수행하는 데 사용되는 반면, usleep 함수는 지정된 마이크로초 동안 정지를 수행하는 데 사용됩니다. sleep은 비시스템 호출로, 라이브러리 함수로 구현되며, 알람 시간을 Alarm()을 통해 설정합니다. 시간 단위가 마이크로초라는 점을 제외하면 usleep은 사용 중인 sleep과 유사합니다.

리눅스에서 usleep과 sleep의 차이점은 무엇입니까?

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

Linux에서 usleep과 sleep의 차이점은 무엇입니까

(1) sleep()---------초 단위

헤더 파일:

 #include <windows.h> // 在VC中使用带上头文件
        #include <unistd.h>  // 在gcc编译器中,使用的头文件因gcc版本的不同而不同

기능: 지정된 초 동안 정지를 실행합니다

구문:

unsigned int sleep(unsigned int seconds);

sleep()은 비시스템 호출입니다. sleep()은 라이브러리 함수에 구현되어 있으며, 알람()을 통해 알람 시간을 설정하고 SIGALARM 신호에 대한 프로세스를 일시 중지합니다.

sleep()은 두 번째 수준까지만 정확할 수 있습니다. sleep()은 초 매개변수에 지정된 시간에 도달하거나 신호에 의해 중단될 때까지 현재 프로세스를 일시 중지합니다.

#includef55648144b4a1c5cce7ad2f6519be0f3

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이 모두 정의되어 있기 때문입니다.

#includef55648144b4a1c5cce7ad2f6519be0f3

return: 프로세스가 초 매개변수에 지정된 시간까지 일시 중지된 경우 성공하면 0이 반환됩니다. 신호 중단이 있으면 남은 마이크로초가 반환됩니다.

반환 값: 없음

내용 설명: 이 함수는 프로그램 실행을 일시적으로 중지할 수 있습니다. micro_seconds 매개변수는 일시 중지할 마이크로초(us) 수입니다.

참고:

이 기능은 Windows 운영 체제에서는 작동하지 않습니다. Linux 테스트 환경에서 사용됩니다.

참고: usleep()은 일시 중지된 프로세스를 지연시키는 데 사용되는 sleep()과 유사합니다. 프로세스가 일시 중단되고 재실행 대기열에 배치됩니다.

일반적인 상황에서 지연 시간이 초 단위일 때는 최대한 sleep() 함수를 사용하세요.

지연 시간이 수십 밀리초(1ms = 1000us) 이하인 경우 가능하면 usleep() 함수를 사용하세요. 이런 방식으로 CPU 시간을 최대한 활용할 수 있습니다

권장 학습: Linux 비디오 튜토리얼

위 내용은 리눅스에서 usleep과 sleep의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.