转: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++也有继承

最新文章

  1. 创建 iPhone/iOS8 弹出菜单(窗口)
  2. Spring MVC中使用Interceptor拦截器
  3. 写过的HTML标签(一)
  4. bzoj 1295: [SCOI2009]最长距离 暴力+bfs最短路
  5. 欧拉工程第61题:Cyclical figurate numbers
  6. Oracle数据库之动态SQL
  7. Java学习路线图·影响一代又一代程序员的经典书籍!(转)
  8. 将1、2、3、……、n这n个连续自然数分成g组,使每组的和相等。g组中个数最多的一组有几个?
  9. js复制链接
  10. 【一天一道LeetCode】#231. Power of Two
  11. 基于令牌桶算法实现的SpringBoot分布式无锁限流插件
  12. css3 手风琴
  13. 自己用的Xshell配色方案
  14. 强大的jQGrid的傻瓜式使用方法。以及一些注意事项,备有相应的引入文件。
  15. [OPENCV]cvHoughLines2使用说明
  16. sql server递归
  17. 利用IntelliJ IDEA 创建第一个项目
  18. 4G通信模块在ARM平台下的应用
  19. idc指令相关
  20. 分布式监控系统Zabbix-3.0.3-完整安装记录

热门文章

  1. linux 中更改权限命令chown,chmod,chgrp
  2. Codeforces 914C Travelling Salesman and Special Numbers (数位DP)
  3. ZROI2018提高day4t1
  4. 第三章:PCL基础3.1
  5. HUST高级软件工程--测试管理工具实践--Day1
  6. bit byte的关系
  7. sina 接口 根据ip获取各个国家和地区
  8. docker网络模式----入门docker的难点
  9. Metasploit 读书笔记-神器Meterpreter
  10. git 增量打包