java线程测试, JDK1.6的发现 (求探讨)

来源:互联网 发布:皇帝龙根插知画 编辑:程序博客网 时间:2024/04/29 20:50

 刚学习java不久,虽然以前学过C++,但是都学得不深入,今天接触了一下期待以久的线程,发现了很多很有趣的东西,然后马上上机尝试,发现了自己实在太落后了,一查jdk才发现现在的1.6版本作了很多修改,例如resume(),stop(),suspend(),countStackFrames(),destroy()这些都已经过时了,这使我想到一个问题,首先是我自己看的书太旧了,如果把这些方法都删了,那么如何挂起一个线程,难道只用sleep()?这可是要确定时间,还有挂起了又如何唤醒呢?resume也没了,再说,又如何停止一个线程?难道就让它自动死掉?

下面是我做的一个小试验:

出现的结果(情况一):
i:0
j:0
i:1
j:1
i:2
j:2
i:3
j:3
i:4
j:4
j:5
j:6
j:7
j:8
j:9   
i:5    //这里等了大概两秒后才出现
i:6
i:7
i:8
i:9
出现的结果(情况二):
i:0
i:1
i:2
i:3
i:4
j:0
j:1
j:2
j:3
j:4
j:5
j:6
j:7
j:8
j:9
i:5    //这里直接出现了.
i:6
i:7
i:8
i:9

然而,我发现运行的结果有几个,意思是会有不同的结果出现,
我的猜想是因为运行时的CPU分工不同而导致这样的,
对于这个问题,我想请教各位java爱好者,大家一起来讨论下吧.