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

Apakah perbezaan antara usleep dan sleep dalam linux?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2022-07-19 15:00:56
asal
4535 orang telah melayarinya

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版本的不同而不同
Salin selepas log masuk

Fungsi: Laksanakan penggantungan untuk bilangan saat yang ditentukan

Sintaks:

unsigned int sleep(unsigned int seconds);
Salin selepas log masuk

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.

#include

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;
 }
Salin selepas log masuk

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

Fail pengepala:

#include <unistd.h>
Salin selepas log masuk

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);
Salin selepas log masuk
#include

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!

Label berkaitan:
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan