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中线程的调度规则,先谢谢了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货