求助,为什么在运行时数字是无序的??急急急
class  AB
{
	public static void main(String[] args)  
	{
	  A s=new A();
	  Thread t1=new Thread(s);
            Thread t2=new Thread(s);
            Thread t3=new Thread(s);
            Thread t4=new Thread(s);
	  t1.start();
            t2.start();
            t3.start();
            t4.start();
	}
}
class A implements Runnable
{
	private int tick=100;
	public void run()
	{
		while(true)
		{
			if(tick>0)
			{//try{Thread.sleep(10);}catch(Exception e){}
				System.out.println(Thread.currentThread().getName()+"......."+tick--);
			}
		}
	}
}
------解决方案--------------------
两个线程a,b
tick假设是90
a中tick--,该打印90,tick变成89,还没有打印90,OK,此时cpu切换线程执行
b开始执行,tick--,该打印89,tick变成88,此时b时间片可能分的多一点又或者b运行的快一点,b线程打印出了89,OK,此时线程再切换
a开始执行,上次a还留了个90没打印,此时打印90
于是就出现了89在前,90在后的现象