Mengapa proses Linux perlu tidur?
Linux ialah sistem pengendalian berbilang tugas yang menyokong berbilang proses berjalan pada masa yang sama. Dalam Linux, proses mempunyai tiga keadaan: keadaan berjalan, keadaan sedia dan keadaan disekat. Antaranya, keadaan menyekat juga dipanggil keadaan tidak aktif, iaitu merujuk kepada keadaan di mana proses berhenti sementara kerana menunggu sesuatu peristiwa berlaku. Untuk menggunakan sumber pengkomputeran dengan cekap, proses Linux perlu memasuki keadaan tidak aktif dalam beberapa keadaan.
#include <stdio.h> #include <unistd.h> #include <fcntl.h> int main() { int fd = open("file.txt", O_RDONLY); if (fd == -1) { perror("Error opening file"); return 1; } char buffer[100]; ssize_t bytes_read = read(fd, buffer, sizeof(buffer)); if (bytes_read == -1) { perror("Error reading file"); return 1; } // 进行一些其他操作 close(fd); return 0; }
Dalam contoh di atas, proses melakukan operasi membaca fail melalui fungsi read
Apabila read
dipanggil, proses akan tidur sehingga operasi fail selesai. read
函数进行文件读取操作,当调用read
后进程会休眠,直到文件操作完成。
#include <stdio.h> #include <signal.h> void handler(int sig) { printf("Received signal %d ", sig); } int main() { signal(SIGUSR1, handler); printf("Waiting for signal... "); pause(); // 进程进入休眠状态,等待信号触发 printf("Signal received. Continuing... "); return 0; }
在以上示例中,进程通过pause
函数进入休眠状态,等待接收用户定义的信号SIGUSR1
jeda
, menunggu untuk menerima isyarat yang ditetapkan pengguna SIGUSR1
. Atas ialah kandungan terperinci Analisis mengapa proses Linux perlu tidur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!