当前位置: 技术问答>linux和unix
linux中的线程有哪几种状态?
来源: 互联网 发布时间:2016-08-25
本文导语: 了解过点linux的线程状态,如生成,等待,睡眠,退出。不过最近看到过有说linux中的线程有数十种状态,不知道有没有哪位仁兄可以解释一下还有些什么样的特殊的线程状态? | 1、TASK_RUNNING...
了解过点linux的线程状态,如生成,等待,睡眠,退出。不过最近看到过有说linux中的线程有数十种状态,不知道有没有哪位仁兄可以解释一下还有些什么样的特殊的线程状态?
|
1、TASK_RUNNING:
进程当前正在运行,或者正在运行队列中等待调度。
2、TASK_INTERRUPTIBLE:
进程处于睡眠状态,正在等待某些事件发生。进程可以被信号中断。接收到信号或被显式的唤醒呼叫唤醒之后,进程将转变为 TASK_RUNNING 状态。
3、TASK_UNINTERRUPTIBLE:
此进程状态类似于 TASK_INTERRUPTIBLE,只是它不会处理信号。中断处于这种状态的进程是不合适的,因为它可能正在完成某些重要的任务。 当它所等待的事件发生时,进程将被显式的唤醒呼叫唤醒。
4、TASK_STOPPED:
进程已中止执行,它没有运行,并且不能运行。接收到 SIGSTOP 和 SIGTSTP 等信号时,进程将进入这种状态。接收到 SIGCONT 信号之后,进程将再次变得可运行。
5、TASK_TRACED:
正被调试程序等其他进程监控时,进程将进入这种状态。
6、EXIT_ZOMBIE:
进程已终止,它正等待其父进程收集关于它的一些统计信息。
7、EXIT_DEAD:
最终状态(正如其名)。将进程从系统中删除时,它将进入此状态,因为其父进程已经通过 wait4() 或 waitpid() 调用收集了所有统计信息。
8、TASK_KILLABLE:
Linux® kernel 2.6.25 引入了这种进程状态,用于将进程置为睡眠状态,它可以替代有效但可能无法终止的 TASK_UNINTERRUPTIBLE 进程状态,以及易于唤醒但更加安全的 TASK_INTERRUPTIBLE 进程状态。
进程当前正在运行,或者正在运行队列中等待调度。
2、TASK_INTERRUPTIBLE:
进程处于睡眠状态,正在等待某些事件发生。进程可以被信号中断。接收到信号或被显式的唤醒呼叫唤醒之后,进程将转变为 TASK_RUNNING 状态。
3、TASK_UNINTERRUPTIBLE:
此进程状态类似于 TASK_INTERRUPTIBLE,只是它不会处理信号。中断处于这种状态的进程是不合适的,因为它可能正在完成某些重要的任务。 当它所等待的事件发生时,进程将被显式的唤醒呼叫唤醒。
4、TASK_STOPPED:
进程已中止执行,它没有运行,并且不能运行。接收到 SIGSTOP 和 SIGTSTP 等信号时,进程将进入这种状态。接收到 SIGCONT 信号之后,进程将再次变得可运行。
5、TASK_TRACED:
正被调试程序等其他进程监控时,进程将进入这种状态。
6、EXIT_ZOMBIE:
进程已终止,它正等待其父进程收集关于它的一些统计信息。
7、EXIT_DEAD:
最终状态(正如其名)。将进程从系统中删除时,它将进入此状态,因为其父进程已经通过 wait4() 或 waitpid() 调用收集了所有统计信息。
8、TASK_KILLABLE:
Linux® kernel 2.6.25 引入了这种进程状态,用于将进程置为睡眠状态,它可以替代有效但可能无法终止的 TASK_UNINTERRUPTIBLE 进程状态,以及易于唤醒但更加安全的 TASK_INTERRUPTIBLE 进程状态。