1. 引入
1.1 非线程安全的示例
public class CreatRunnable {
public static void main(String[] args) {
TicketWindow ticket = new TicketWindow();
Thread t1 = new Thread(ticket);
Thread t2 = new Thread(ticket);
Thread t3 = new Thread(ticket);
t1.start();
t2.start();
t3.start();
}
}
class TicketWindow implements Runnable {
private int nums = 5;
public void show(){
if (nums > 0) {
System.out.println(Thread.currentThread().getName() + "正在售出第 " + nums + " 票");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
nums--;
}
}
@Override
public void run(