博客主页:https://blog.csdn.net/GBS20200720
博主昵称:怎么又有bug单
主要领域:Java、Linux、K8S
期待大家的关注💖点赞👍收藏⭐留言💬
今天给大家看一下,从最简单的一个start启动一个线程。能获得什么知识?结合jvm和操作系统底层的运作、结合C++源代码的分析来给大家介绍一个线程是如何起来的。

到Thread线程内部第696行,这儿我们可以看得出所有的start其实调用到的是Thread.java这个类。然后它调用了这么一个同步的start方法,也就说这个线程必须要全部走完,对吧?再往下看所有的方法实质而言调用的是start0这个方法。


在这儿有一个布尔值first start0,这个方法调用完成以后,马上变成代表启动成功,那么所谓的start0又是什么呢?学过jvm的知识的同学,有这个知识背景的都会了解,native代表的是本地接口的调用,调的是第三方c语言所编写的底层函数或者是操作系统。我们大家都清楚,从操作系统这个角度,在任务管理器里面,你就是没有装jdk,它也有操作系统级别的进程和线程,有进程必然

本文探讨了Java中启动线程的`start`方法,从JVM和操作系统底层的角度进行分析。通过源码阅读,指出`start`方法最终调用`start0`,这是一个本地接口调用,涉及C++编写的底层函数或操作系统。文章强调多线程是操作系统层面的概念,与具体编程语言关系不大,并提及OpenJDK作为C++对JAVA语言的实现,帮助理解线程的启动过程。
639

被折叠的 条评论
为什么被折叠?



