日期:2014-05-20  浏览次数:20712 次

关于java中线程的执行问题

请问这个程序的运行结果为什么不是
“thread线程启动了”
count的值是1
“thread2县城启动了”
count的值是2

看不见图片的同学看这里: http://f.anyhub.net/4o0e

------解决方案--------------------
该程序有3个线程,2个输出都是主线程的程序
线程是抢占执行的,可以做循环测试,少量数据看不到效果。
------解决方案--------------------
“thread线程启动了”,但是这个thread线程并没有马上执行,没分配到cpu资源或者jvm的原因~
我的理解是这样的~
------解决方案--------------------
这个多线程工程,不是每次的执行结果都是一样的,关系的哪一个线程能优先分配到资源或优先抢占到CPU的执行时间,再有就是一个线程不是一个时间片的时间长度就可以执行完了的,可能执行到一半CPU就被分配给其他线程去执行。总之,线程的调度是由系统控制的,所以楼主所执行出的结果和期望的结果都是可能出现的啦~