2、程序计数器

程序计数器是Java虚拟机内存模型中的一个重要组件,它是每个线程私有的,用于记录当前线程执行的字节码指令地址。在多线程环境下,线程切换时,程序计数器会保存线程状态,以便恢复执行。由于其不会引发内存溢出错误,因此在内存管理中独具一格。这个概念可以通过人接电话的例子来形象理解,模拟了线程如何在执行中被中断和恢复。
摘要由CSDN通过智能技术生成

1、定义:

  • 程序计数器是一块较小的内存空间,它可以看作是:保存当前线程所正在执行的字节码指令的地址(行号)。
  • 由于Java虚拟机在多线程模式下是通过线程轮流切换并分配CPU时间片的方式来实现的,因此当某一线程的时间片用完,但指令操作未执行完毕时,就要记住该线程的待执行指令,等待CPU下次分配到时间片后再从记录的指令处继续执行

2、特点:

线程私有

  • 程序计数器是每个线程所私有的,当另一个线程的时间片用完,又返回来执行当前线程的代码时,通过程序计数器可以知道应该执行哪一句指令

不存在内存溢出问题

  • 程序计数器内存区域是虚拟机中唯一没有规定OutOfMemoryError情况的区域。

3、举例

  • 假如现在有一个人A(看作CPU)正在看电影(看作一个线程)
    在这里插入图片描述

  • 这时,突然电话铃声响起,有人打来了电话,那A(CPU)就要暂停电影,去接电话。
    在这里插入图片描述

  • 等到电话打完,A(CPU)再继续看电影。
    在这里插入图片描述
    通过这样一个例子,模仿了程序计数器在JVM中的作用

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值