class TestThread implements Runnable
{
int tickes=100;
public void run()
{
while(true){
if(tickes>0)
 System.out.println(Thread.currentThread().getName()+"is salling tickets"+" "+tickes--);}

}
}
class TestTicket
{
public static void main(String args[])
{
TestThread t=new TestThread();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
}
}
为什么我在命令行里用javac编译和java运行的结果和在MyEclipse中运行的结果不一样啊(在命令行用java运行结果tickets不是递减的,基本上没有什么规律,而在MyEclipse中运行时却是递减的,从100减到1)我是菜鸟 谁能帮我解决一下 谢谢了

解决方案 »

  1.   

    这个还不好想啊 就是Myeclipse下每次运行的结果都有不同 关键看你是用什么工具 至于怎么执行的完全根据电脑的实际情况执行 
     这就是多线程 不一定一个线程完了才执行另一个 可能一个执行了一半停了 而又去执行另一个去了 不确定的
      

  2.   

    我知道线程的运行结果和当前CPU的使用有关,但是关键的问题是我每次用Myeclipse运行的时候结果都相同,貌似和CPU没什么太大的关系,但是在命令行中运行就不一定了 可能真的是和所使用的开发工具有关,我觉得在命令行中运行的命令和CPU有直接的关系。
      

  3.   

    同一个东西在四个线程里运行??
    因为cpu是按不同规律分配时间片的 
    有可能第一次循环时的规律是:1 2 3 4顺序运行但第二次就不一定了 有可能是341243.......;
    所以应该在线程运行时加个sleep()等类似于让某一线程暂停的方法,等候应该是他运行的时段