首页 > 编程知识 正文

java线程通信(java线程同步)

时间:2023-05-03 17:29:42 阅读:98545 作者:4352

该线程包括以下状态:

创建(新的),准备好(可运行),运行(运行),阻塞(阻塞)-[等待时间,等待],死亡(死亡)

当需要一个新线程来执行子任务时,就创建了一个线程。但是线程创建后,不会立即进入就绪状态,因为线程的运行需要一些条件(比如内存资源),只有当线程运行所需的所有条件都满足时,才会进入就绪状态。

当线程进入就绪状态时,并不意味着可以立即获得CPU执行时间。可能这个时候CPU在做其他事情,所以要等。当获得CPU执行时间后,线程才真正进入运行状态。

在线程运行状态下,可能有几个原因导致当前线程无法继续运行,比如用户主动让线程休眠,用户主动让线程等待,或者被同步块阻塞。此时有几种状态:时间等待(休眠或等待某一事件)、等待(等待被唤醒)和阻塞(阻塞)。

当由于子任务的突然中断或完成,线程会消亡。

上下文开关程序

对于单核CPU,CPU一次只能运行一个线程。当运行一个线程时,它转向另一个线程,这被称为线程上下文切换。因为当前线程可能还没有完成,所以切换的时候需要保存线程的运行状态,这样下次切换回来的时候可以继续之前的运行状态。上下文切换是存储和恢复CPU状态的过程,这使得线程执行能够从断点恢复。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。