问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java线程Thread.class源码中未找到线程状态切换的地方,请教各位大神,threadStatus切换源代码在哪里找?

发布网友 发布时间:2022-05-20 22:03

我来回答

2个回答

热心网友 时间:2023-10-03 06:38

[1]新生状态(New):当一个线程的实例被创建即使用new关键字和Thread类或其子类创建一个线程对象后,此时该线程处于新生(new)状态,处于新生状态的线程有自己的内存空间,但该线程并没有运行,此时线程还不是活着的(notalive)。
[2]就绪状态(Runnable):通过调用线程实例的start()方法来启动线程使线程进入就绪状态(runnable);处于就绪状态的线程已经具备了运行条件,但还没有被分配到CPU即不一定会被立即执行,此时处于线程就绪队列,等待系统为其分配CPCU,等待状态并不是执行状态;此时线程是活着的(alive)。
[3]运行状态(Running):一旦获取CPU(被JVM选中),线程就进入运行(running)状态,线程的run()方法才开始被执行;在运行状态的线程执行自己的run()方法中的操作,直到调用其他的方法而终止、或者等待某种资源而阻塞、或者完成任务而死亡;如果在给定的时间片内没有执行结束,就会被系统给换下来回到线程的等待状态;此时线程是活着的(alive)。
[4]阻塞状态(Blocked):通过调用join()、sleep()、wait()或者资源被暂用使线程处于阻塞(blocked)状态;处于Blocking状态的线程仍然是活着的(alive)。
[5]死亡状态(Dead):当一个线程的run()方法运行完毕或被中断或被异常退出,该线程到达死亡(dead)状态。此时可能仍然存在一个该Thread的实例对象,当该Thread已经不可能在被作为一个可被独立执行的线程对待了,线程的独立的callstack已经被dissolved。一旦某一线程进入Dead状态,他就再也不能进入一个独立线程的生命周期了。对于一个处于Dead状态的线程调用start()方法,会出现一个运行期(runtimeexception)的异常;处于Dead状态的线程不是活着的(notalive)。追问我问的并不是这个意思,这五种状态我晓得,我问题的意思是源代码中线程状态切换的代码实现我找不到

热心网友 时间:2023-10-03 06:38

其实,threadStatus的切换是在JVM调用Thread.class中第714行start0();时进行的,这个方法的声明如下:
Thread.class中第728行private native void start0(); // 有个native修饰符,说明这是调用了C++实现的方法
再看JVM对threadStatus的定义:private volatile int threadStatus = 0;// 这是内存可见的,就是要保证JVM通过C++可见,而且java也可以拿到该值。追问昨天的追问怎么消失了。。。
----------------------------------
你的意思是threadStatus的状态修改由底层的C++代码实现,threadStatus的状态值变化JVM是可见的,但是做为程序员无法看到threadStatus改变的具体实现方式,是这样吗?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 《英雄传说-4朱红泪》的2部书籍收集 狂战传说艾蕾诺亚怎么打 英雄传说4朱红之泪那些书籍有什么作用啊? 《英雄传说4 朱红泪》中出现的书籍《剑帝扎姆扎》和《疾风小子拉宾》都在哪里和那种情况下可以得到? 真三国无双4如何得马和珍宝 朱红之泪剧情 一人掘井 光阴似箭 拳不离手 己所不欲 有则改之 亡羊补牢这些谚语的后面一句是什么? 有则改之下一句是什么=-O 有则改之,无则加冕是什么意思? 你赞同“有则改之无则加勉”这句话吗? 鲁鲁修cc同人漫画跟卡莲.不要bl.276782070@qq.com 这是什么耽美漫画~有链接最好 谁有鲁鲁修 x cc的同人漫画,合集最好,bl免谈,请发送到qaz159357007@126.com 脚上长水泡要怎么才能要治 求鲁鲁修cc同人漫画,是漫画不是小说,坚决抵制BL,邮箱954400256@qq.com 求鲁鲁修同人漫画,就是和cc差不多的,不要bl 有没有鲁鲁修和卡莲或cc的同人漫画,bl不要,请发送dyd159357@126.com 大街上油炸葱油饼怎么样才能起泡? 下午五点的飞机 我几点到机场最好?现在说的起飞前45分钟停止办理登机手续是什么意思? 哪位大神有叛逆的鲁鲁修的JQ 漫画。BL的都可以。cc和鲁鲁修的最好,哈哈。~~~~583379818@qq.com 我的360极速浏览器,谁能告诉我下,字为什么看不清楚呢 诗回眸一笑百媚生,后宫佳丽无颜色。前一句是什么 小学生简单学习演讲搞 怎样做一名合格的小学生演讲 小学生演讲可以从那些方面选择? 小学生上台演讲该怎么说?急需! 小学生怎样养成好习惯演讲稿 在一线城市稳定之后,该不该把父母接到身边? heart-梦出发的歌词 Britney《Heart》歌词 包青天之碧血丹心庞太师女儿扮演者是谁 布兰妮<heart>的中文歌词 求泰勒斯威夫特的i heart~~中文歌词~~ 求how to break a heart歌词及翻译 <犬夜叉>74集片尾曲<Every heart>的中文歌词是什么啊? 包青天之碧血丹心拍摄时间 lion heart 的中文歌词? HEART TO HEART的中文歌词 《How to Break a Heart》歌词中英文都要 Heart by Heart的中文歌词