一分钟弄懂线程程序计数器

程序计数器为什么是线程私有的?

1. 程序计数器

1.1. 程序计数器的本质

从本质来看,程序技术器就是一块比较小的内存空间。

1.2. 程序计数器的作用

程序计数器可以看作是当前线程所执行字节码的行号指示器,也就是说,程序计数器这块小空间里面记录的是当前线程正在执行的字节码的行号。字节码解释器通过改变计数器的值来获取下一条要执行的字节码。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。

1.3. 为什么程序计数器被设计成线程私有的?

假如现在有一本书,有好几个同学都想看,我们采取这样的策略让所有同学都能看到:每个人看一天,不管看没看完都要交给下一个人看,不断循环,直到所有人看完。每个同学都有一个小卡片记录自己看到了哪里,这样下次轮到自己看的时候就能快速的接着上次看到的地方继续看。

Java虚拟机中多线程采用时间片轮转的方式实现,一个处理器(如果是多核处理器就是一个内核)同一时间只能被一个线程使用,同一时间只能执行一个线程的指令,当时间片用完,处理器就要交给别的线程使用,为了下一次轮到自己使用处理器是能够接着执行现在的指令,使用一个计数器来记录。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值