package src.chart1;
class LeftHand extends Thread
{
        public void run()
        {
                for(int i=1;i<=4;i++)
                {
                        System.out.println("我是左手线程");
                }
        }
}
class RightHand extends Thread
{
        public void run()
        {
                for(int i=1;i<=4;i++)
                {
                        System.out.println("我是右手线程");
                }
        }
}class  Example1
{
        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<=3;i++)
                {
                        System.out.println("我是主线程");
                }
        }
}
这个程序输出结果的顺序为
我是主线程
我是主线程
我是主线程
我是右手线程
我是右手线程
我是右手线程
我是右手线程
我是左手手线程
我是左手手线程
我是左手手线程
我是左手手线程根据线程调度与优先级,应该是先进先出,先进入就绪状态的就先分配到处理器资源。上面的left()与right()优先级一样啊,而调用left.start()就进入了就绪状态,但怎么会输出上述的结果,希望各位前辈给我解释一下在java中线程的调度规则,先谢谢了