Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah perbezaan antara usleep dan sleep dalam linux?

Apakah perbezaan antara usleep dan sleep dalam linux?

WBOY
WBOYasal
2022-07-19 15:00:564089semak imbas

Perbezaan antara usleep dan sleep dalam Linux: Fungsi sleep digunakan untuk melakukan penggantungan untuk bilangan saat yang ditentukan, manakala fungsi usleep digunakan untuk melakukan penggantungan untuk bilangan mikrosaat yang ditentukan. tidur ialah panggilan bukan sistem, dilaksanakan dalam fungsi perpustakaan, dan menetapkan masa penggera melalui penggera(). Kecuali unit masa ialah mikrosaat, usleep adalah serupa dengan tidur yang digunakan.

Apakah perbezaan antara usleep dan sleep dalam linux?

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Apakah perbezaan antara usleep dan sleep dalam linux

(1) sleep()-------dalam beberapa saat

Head Fail:

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

Fungsi: Laksanakan penggantungan untuk bilangan saat yang ditentukan

Sintaks:

unsigned int sleep(unsigned int seconds);

sleep() ialah panggilan bukan sistem, sleep( ) Dilaksanakan dalam fungsi perpustakaan, ia menggunakan penggera() untuk menetapkan masa penggera, dan menggunakan sigsuspend() untuk menggantung proses pada isyarat SIGALARM.

sleep() hanya boleh tepat ke tahap kedua. sleep() akan menyebabkan proses semasa dijeda sehingga masa yang ditentukan oleh parameter saat dicapai, atau sehingga ia diganggu oleh isyarat.

#includef55648144b4a1c5cce7ad2f6519be0f3

return: Jika proses digantung untuk masa yang ditentukan oleh parameter saat, 0 akan dikembalikan jika terdapat gangguan isyarat, saat yang tinggal akan dikembalikan.

Contoh:

 #include <windows.h>
 #include<stdio.h>
 int main()
 {
  int a;
  a=1;
  printf("hello");
  sleep(a);        /* VC 使用Sleep*/
  printf("world");
  return 0;
 }

(2) usleep()----dalam mikrosaat

Fail pengepala:

#include <unistd.h>

Fungsi: fungsi usleep menangguhkan proses untuk satu tempoh masa, unit ialah mikrosaat (persejuta saat); unit masa ialah mikrosaat, ia serupa dengan sleep() yang digunakan. Selain itu, pelaksanaannya juga berbeza Kerana tidur dilaksanakan menggunakan penggera, unit masa adalah s, manakala unit masa usleep adalah kita

, yang pastinya tidak dilaksanakan secara penggera, jadi pelaksanaannya berbeza. . , tetapi semuanya digunakan dalam Linux, tetapi tidak boleh digunakan dalam Windows, kerana kedua-dua sleep dan usleep ditakrifkan di bawah unistd.h.

void usleep(int micro_seconds);
#includef55648144b4a1c5cce7ad2f6519be0f3

kembali: Jika proses digantung pada masa yang ditentukan oleh parameter saat, 0 akan dikembalikan jika terdapat gangguan isyarat, baki mikrosaat akan dikembalikan.

Nilai pulangan: Tiada

Penerangan kandungan: Fungsi ini boleh menghentikan pelaksanaan atur cara buat sementara waktu. Parameter micro_seconds ialah bilangan mikrosaat (us) untuk dijeda.

Nota:

Fungsi ini tidak berfungsi dalam sistem pengendalian Windows. Digunakan dalam persekitaran ujian Linux.

Lihat: usleep() serupa dengan sleep(), digunakan untuk menangguhkan proses yang digantung. Proses itu digantung dan diletakkan pada baris gilir reday.

Dalam keadaan biasa, apabila masa tunda mengikut urutan saat, gunakan fungsi sleep() sebanyak mungkin.

Jika masa tunda ialah berpuluh-puluh milisaat (1ms = 1000us), atau lebih kecil, gunakan fungsi usleep() jika boleh. Dengan cara ini, anda boleh menggunakan masa CPU sebaik mungkin

Pembelajaran yang disyorkan:

Tutorial video Linux

Atas ialah kandungan terperinci Apakah perbezaan antara usleep dan sleep dalam linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn