操作系统-进程与线程

总结一下JAVA的线程API

1.linux进程状态 (运行,中断,不可中断,僵死,停止)
2.linux查看线程
3.JAVA中对CPU时间片的操作(Thread.yield(),Thread.Sleep(0),Thread.Sleep(1))

1. linux进程状态 (运行,中断,不可中断,僵死,停止)

就绪态。指进程已经获得所有所需的其他资源,正在申请处理处理器资源,准备开始执行。这种情况下,称进程处于就绪态。
阻塞态。指进程因为需要等待所需资源而放弃处理器,或者进程本不拥有处理器,且其他资源也没有满足,从而即使得到处理器也不能开始运行。这种情况下,进程处于阻塞态。阻塞状态也称休眠状态或者等待状态。
运行态。进程得到了处理器,并不需要等待其他任何资源,正在执行的状态,称之为运行态。只有在运行态时,进程才可以使用所申请到的资源。

linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

2. linux查看线程

使用命令  top -H -p进程ID. 例: top -H -p25885, 结果如下

linux线程

3. JAVA中对CPU时间片的操作(Thread.yield(),Thread.Sleep(0),Thread.Sleep(1))

Thread.yield()
    让出CPU时间片,状态改为就绪态, 允许所有线程抢用CPU
Thread.Sleep(0)
    让出CPU时间片,状态改为就绪态, 允许比自己级别高的线程抢用CPU
Thread.Sleep(1)
    停顿1毫秒, 其余和Thread.Sleep(0)相同

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

备案信息公示
京ICP备18003381号
京ICP备18003381号-1