sleep使用的比较多的了,可以来看一下为什么要休眠
还是用之前那个抢票的代码
//模拟延时
public class Testsleep implements Runnable{
private int ticketnumber = 10;
@Override
public void run() {
while (true){
if (ticketnumber <= 0){
break;
}
System.out.println(Thread.currentThread().getName()+"-->拿到了第"+ticketnumber--+"张票");
}
}
public static void main(String[] args) {
Testsleep ticket = new Testsleep();
new Thread(ticket,"同学").start();
new Thread(ticket,"老师").start();
new Thread(ticket,"校长").start();
}
}
没有了延时我们来看一下会是什么结果
此时校长就像黄牛党一样,抢走了全部票,当然不能让这种情况发生,这是由于跑的太快了,一个线程跑完了另一个还没开始,