Java面试问题之三十一

请谈谈Java线程的运行机制。

答:在Java虚拟机进程中,执行程序代码任务是由线程来完成的。每个线程都有一个独立的程序计数器和方法调用栈(method invocation stack)。

(1)程序计数器:也称为PC寄存器,当线程执行一个方法时,程序计数器指向方法区中下一个要执行的字节码指令。

(2)方法调用栈:简称方法栈,用来跟踪程序运行中一系列方法调用过程,栈中的元素称为栈帧。每当线程调用一个方法的时候,就会向方法栈压入一个新帧。帧用来存储方法的参数、局部变量和运算过程中的临时数据。

栈帧主要由三个部分组成:
[color=red]* 局部变量[/color]:存放局部变量和方法参数。
[color=green]* 操作数栈[/color]:是线程的工作区,用来存放运算过程中生成的临时数据。
[color=blue]* 栈数据区[/color]:为线程执行指令提供相关的信息,包括如何定位到位于堆区和方法区的特定数据,以及如何正常退出方法或者异常中断方法。

每当用java命令启动一个Java虚拟机进程时,Java虚拟机都会创建一个主线程,该线程从程序入口main()方法开始执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值