锁定老帖子 主题:java中线程到底什么时候启动
精华帖 (0) :: 良好帖 (0) :: 新手帖 (11) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-13
应该用join 来保证子线程执行完吧
|
|
返回顶楼 | |
发表时间:2009-01-14
哈,你根本没有办法知道!
当你new一个线程的时候实例化了一个线程,当你start的时候,操作系统也要为它准备资源,然后把它丢到就绪队列里,即便等到当前在CPU的线程让出之后,你这个线程也不一定能立刻运行,操作系统要经历复杂的思想过程(调度算法),直到它认为该你运行了,你就start了。 好像在很多情况先start的线程会先运行,不过这只是好像,可能和先来先服务有关,呃,《操作系统》全忘光了。。 |
|
返回顶楼 | |
发表时间:2009-01-20
main() 是一个特殊的线程,java虚拟机会自己动认出来,其他的线程是子线程,主线程和子线程个走个的,很有可能主线程已经结束,但是子线程还在运行的情况
|
|
返回顶楼 | |
发表时间:2009-01-20
gembler 写道 njuptsoz 写道 icyiwh 写道 结果是正常的如果没有休眠时间则运行过程如下:主线程启动(Main)的执行和子线程的执行在时间上是并行的,不是串行的"测试已结束!"这句可以出现在任何一个子线程的启动之前或者启动之后 同意 同意,too。 这种并行情况下,结果是因环境而异。 我也同意这个观点。 |
|
返回顶楼 | |