为什么在类Tick中加入try...catch....异常处理代码后,
会再代码运行后出现0, -1或者-2的异常,虽然知道是存在不安全问题,但是究竟是一个什么样
的运行机制,和实现方法,还是有些疑惑,这是为什么呢?
class Tick implements Runnable//extends Thread
{
private int tick = 50;
public void run()
{
while(true)
{
if(tick>0)
{try{Thread.sleep(10);}catch(Exception e){}//加入try...catch处理,
//出现0,-1或-2异常为什么?
System.out.println(Thread.currentThread().getName()+"....sale : "+ tick--);
}
}
}
}
class TicketDemo
{
public static void main(String[] args)
{
Tick t = new Tick();
Thread t1 = new Thread(t);//创建了一个线程;
Thread t2 = new Thread(t);//创建了一个线程;
Thread t3 = new Thread(t);//创建了一个线程;
Thread t4 = new Thread(t);//创建了一个线程;
t1.start();
t2.start();
t3.start();
t4.start();
}
}
|