在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状 态标志位为TASK_RUNNING。
一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运行。设置Linux进程的睡眠和唤醒
给你一个完整的测试代码:--------------------------
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
void handler(int signo)
{
printf("recv the signal from parent process\n")
}
int main()
{
pid_t pid
pid = fork()
switch(pid)
{
case -1:
perror("fork failed")
exit(1)
case 0:
printf("in the child\n")
signal(SIGCONT, handler)
pause()
printf("child weakup\n")
break
default:
printf("in the parent\n")
sleep(5)
kill(pid, SIGCONT)
sleep(5)
printf("parent weakup\n")
break
}
printf("bye..\n")
exit(0)
}
--------------------------------------------------
运行及输出:
beyes@linux-beyes:~/C>./weakup.exe
in the child
in the parent
recv the signal from parent process
child weakup
bye..
parent weakup
bye..
....................................
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)