package demo1;
//买火车票的例子
public class TestThread4 implements Runnable{
private int ticket=10;
@Override
public void run() {
// TODO Auto-generated method stub
while(true) {
if(ticket<=0) {
break;
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"拿到"+ticket--+"号票");
}
}
public static void main(String args[]) {
TestThread4 testThread4 = new TestThread4();
new Thread(testThread4,"小明").start();;
new Thread(testThread4,"张三").start();
new Thread(testThread4,"王五").start();;
}
}
执行效果:
出现两个人拿到同一张票的问题,甚至出现票号<=0的情况出现,这便是线程不安全问题。