Java措施计数器刨根问底,大部门措施员都保藏起来了
JAVA假造机打点的内存地区图 1.什么是措施计数器? 措施计数器是当前列程正在执行的字节码的地点。措施计数器是线程断绝的,每一个线程在事变的时辰都有一个独立的计数器。 2.字节码的执行道理 编译后的字节码在没有颠末JIT(及时编译器)编译前,是通过字节码表明器举办表明执行。其执行道理为:字节码表明器读取内存中的字节码,凭证次序读取字节码指令,读取一个指令就将其翻译成牢靠的操纵,按照这些操纵举办分支,轮回,跳转等举措。 3.措施计数器的浸染? 从字节码的执行道理来看,单线程的环境下措施计数器是无关紧要的。由于纵然没有措施计数器的环境下,措施会凭证指令次序执行下去,纵然碰着了分支跳转这样的流程也会凭证跳转到指定的指令处继承次序执行下去,是完全可以或许担保执行次序的。 可是实际中措施每每是多线程协作完成使命的。JVM的多线程是通过CPU时刻片轮转来实现的,某个线程在执行的进程中也许会由于时刻片耗尽而挂起。当它再次获取时刻片时,必要从挂起的处所继承执行。在JVM中,通过措施计数器来记录措施的字节码执行位置。措施计数用具有线程断绝性,每个线程拥有本身的措施计数器 4.措施计数器的特点 (1)措施计数用具有线程断绝性 (2)措施计数器占用的内存空间很是小,可以忽略不计 (3)措施计数器是java假造机类型中独逐一个没有划定任何OutofMemeryError的地区 (4)措施执行的时辰,措施计数器是有值的,其记录的是措施正在执行的字节码的地点 (5)执行native当处所法时,措施计数器的值为空。缘故起因是native要领是java通过jni挪用当地C/C++库来实现,非java字节码实现,以是无法统计 【编辑保举】
点赞 0 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |