java thread start到run:C++源码分析
2024-08-29 15:15:16
转:https://hunterzhao.io/post/2018/06/11/hotspot-explore-inside-java-thread-run/
整体流程
java new Thread()时,本地线程并没有创建,是在start()时才开始创建本地线程
os线程创建之后, 处于wait状态
Thread::start(native_thread)时, 会调用os线程对象的notify, 上图中会跳出while循环,触发执行run()方法。之后会记录线程的启动状态
由此可见:start()调用run()方法是jvm C++代码自动完成的, 只看java代码是看不出来这个过程的. java Thread.class代码中只有一个start0() native方法
源码查看过程,有时找不到方法声明的地方 可以使用xxx::yyyy搜索一下。C++也有继承
最新文章
- 创建 iPhone/iOS8 弹出菜单(窗口)
- Spring MVC中使用Interceptor拦截器
- 写过的HTML标签(一)
- bzoj 1295: [SCOI2009]最长距离 暴力+bfs最短路
- 欧拉工程第61题:Cyclical figurate numbers
- Oracle数据库之动态SQL
- Java学习路线图·影响一代又一代程序员的经典书籍!(转)
- 将1、2、3、……、n这n个连续自然数分成g组,使每组的和相等。g组中个数最多的一组有几个?
- js复制链接
- 【一天一道LeetCode】#231. Power of Two
- 基于令牌桶算法实现的SpringBoot分布式无锁限流插件
- css3 手风琴
- 自己用的Xshell配色方案
- 强大的jQGrid的傻瓜式使用方法。以及一些注意事项,备有相应的引入文件。
- [OPENCV]cvHoughLines2使用说明
- sql server递归
- 利用IntelliJ IDEA 创建第一个项目
- 4G通信模块在ARM平台下的应用
- idc指令相关
- 分布式监控系统Zabbix-3.0.3-完整安装记录