每天学一点:java虚拟机2

虚拟机中每个对象都有一个对象锁,用于协调多线程访问同一个对象时的同步。
除了锁,每个java对象逻辑上还与实现等待集合的数据相关联,等待集合是用来让多个线程为完成同一个共同目标二协调工作的。,由等待方法(从object那里继承的三个名为wait()的重载方法)和通知方法(notify()和notifyAll())联合使用。

程序计数器
PC寄存器的大小是一个字长,他既能够持有以个本地指针,也能够持有一个returnAddress。当线程执行一个本地方法是,PC寄存器的值是“undefined”

java栈
新线程启动时,java虚拟机会分配一个java栈。
虚拟机知会直接对java栈执行两种操作:以帧为单位的压栈或出栈。
每当线程调用一个java方法时,都会有个新帧压入栈,在执行这个方法时,使用这个帧来存储参数、局部变量、中间运算结果等;
无论java方法是正常返回还是抛出异常返回,虚拟机都会从栈上弹出当前帧;

帧栈由三部分组成:局部变量区、操作数栈、帧数据区。
局部变量区、操作数栈大小有具体方法而定,按字长计算,编译时就确定了这些值并放在class文件中,帧数据区大小依赖具体实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值