黑马程序员技术交流社区

标题: 线程问题 [打印本页]

作者: 郑世光    时间: 2012-10-9 09:35
标题: 线程问题
本帖最后由 郑世光 于 2012-10-9 12:10 编辑

一个线程Test调用方法Test.start() 后进入的是运行状态吗?是否就立即获得了cpu执行权

作者: qhasilver    时间: 2012-10-9 09:40
获得了程序里的执行权,CPU里还是处于正常排队执行。
作者: 刘伟平    时间: 2012-10-9 10:20
start() 使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
确实立即获得了执行权,但是否运行要CPU随机处理,所以并不是立即就执行的。
作者: 邓利军    时间: 2012-10-9 10:29
Test.start() 这做了两件事,1,启动这条线程;2,调用run方法.
但同一时间内,仅有一条线程执行,也就是说同一时间内只有一条线程有执行权,而其它线程就只有执行资格.
所以它要么获得了cpu执行资格和CPU执行权,要么获得了执行资格但没有执行权.
作者: 葛旭东    时间: 2012-10-9 11:01
使用start()方法说明已经开启了Test这个线程,获取了执行资格;但cpu要给所有的线程分配执行权,所以Test线程在等待cpu给它分配执行权。
也就是说,现在已经准备好了去执行,就等cpu给他执行的机会了!
线程的生命周期为:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、死亡(Dead) 5种状态。
Test.start()这时处于就绪状态!


作者: 杨华东    时间: 2012-10-9 15:10
嗯     不错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2