首页 > 编程知识 正文

java线程通信的几种方式,java多线程是并发还是并行

时间:2023-05-05 18:39:09 阅读:170826 作者:4678

线程上下文切换、多线程频繁上下文切换

在时间片轮转方式下,CPU为每个任务服务一定的时间,保存当前任务的状态,加载下一个任务后,继续服务下一个任务。 这个过程被称为上下文切换。

分片轮换方式允许在同一个CPU上执行多个任务。

1、进程(有时也称为任务)是指一个程序运行的实例。 在Linux系统上,线程是一个轻量级进程,可并行执行,并与父进程(创建它们的进程)共享相同的地址空间(内存空间的一部分)和其他资源。

2、上下文:指某一时刻CPU寄存器和程序计数器的内容。

3、寄存器: CPU内部数量较少但速度较快的存储器(与此相对应的是CPU外部相对较慢的RAM主存储器)。 寄存器通过快速访问常用值,通常是运算的中间值来提高计算机程序的执行速度。

4 .程序计数器:专用寄存器,用于指示CPU在指令序列中运行的位置,存储的值是正在执行的指令的位置或下一个要执行的指令的位置,具体取决于特定的系统。

5.PCB-“切换帧”(上下文切换包括内核(操作系统核心)在CPU上的进程)线程)被认为是可切换的,上下文切换中的信息是进程控制块PCB也称为“帧切换”。 信息将保存在CPU的内存中,直到再次使用。

6 .上下文切换活动

1 )挂起进程,将该进程在CPU内的状态(上下文)保存在内存中的某个位置。

2 )在存储器中搜索下一个城镇的上下文,并将其还原到CPU的寄存器中。

3 )跳转到程序计数器指定的位置(也就是跳转到进程被中断时的代码行)后,便返回到程序内的该进程。

7 .引起线程上下文切换的原因

1 )当前正在运行的任务的时间片用完后,系统CPU照常调度下一个任务;

2 )如果当前正在运行的任务遇到IO块,调度程序将挂起该任务,然后继续下一个任务;

3 )多个任务抢占锁定资源,当前任务未抢占锁定资源,被调度器挂起,进入下一任务;

4 )用户代码挂起当前任务,让出CPU时间;

5 )硬件中断

相关文章还没有相关文章

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