public class Example91 {
public static void main(String args [])
{
Lefthand left ;
Righthand right ;
left = new Lefthand ();
right = new Righthand ();
left.start();
right.start();
for(int i = 1 ; i <= 6 ; i++)
{
System.out.println("我是主线程");
}
}
}
class Lefthand extends Thread
{
public void run()
{
for(int i = 1 ;i <= 9 ;i++)
{
System.out.println("我是左线程");
}
}
}class Righthand extends Thread{
public void run()
{
for (int i = 1; i <= 9; i++)
{
System.out.println("我是右线程");
}
}
}
输出结果是:
我是主线程
我是主线程
我是主线程
我是主线程
我是主线程
我是主线程
我是右线程
我是右线程
我是右线程
我是右线程
我是右线程
我是右线程
我是右线程
我是右线程
我是右线程
我是左线程
我是左线程
我是左线程
我是左线程
我是左线程
我是左线程
我是左线程
我是左线程
我是左线程可是书上的输出结果不是这样的;书上的输出结果是:我是主线程
我是主线程
我是主线程
我是主线程
我是主线程
我是左线程
我是右线程
我是左线程
我是右线程
我是左线程
我是右线程
我是左线程
我是右线程
我是左线程
我是右线程
我是主线程
我是左线程
我是左线程
我是左线程
我是右线程
我是右线程
我是右线程结果到底是怎么样的呢?希望各位高手指点一下啦!!谢谢啦!!

解决方案 »

  1.   

    这个是由系统调度的,所以结果不固定,如果你要自己调度,可以使用yard或sleep之类的方法。
      

  2.   

    线程什莫时候被执行,是由cpu决定的
    可能书上的那个例子执行的机器性能和你的不同,所以会出现差别
    这个不存在正误之分
      

  3.   

    楼主用的是LInux?windows时候好点,但是linux不用sleep那些方法就是这样的结果,
      

  4.   

    这个是由JVM于CPU的调度机制以及你的机子环境决定的!你多运行几次就会发现在自己机子上的每次也会由不同的结果!!