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

一个很简单的线程 就是有点不明白
JAVA CODE:

class Machine extends Thread
{
public void run()
{
for(int a=0;a<20;a++)
System.out.println(currentThread().getName()+":"+a);
/*try
{
sleep(10);
}catch(InterruptedException e)
{
throw new RuntimeException(e);
}*/
}
public static void main(String[] args) 
{
Machine machine1 = new Machine();
Machine machine2 = new Machine();
machine1.setName("m1");
machine2.setName("m2");
machine1.start();
machine2.start();
//machine1.run();
}
}

------解决方案--------------------
lz是在看孙卫琴的书吧.

出现m1 和m2 轮换的现象.
1,因为线程的启动是需要时间
2,java中的线程是抢占式的.

machine1 和 machine2都是由主线程启动的.

的当machine1.start启动的时候
machine2线程还没有启动所以.
m1先执行. m1执行一段时间后主线程把m2启动所以m2开始执行.