- class SaleTicketTest
- {
- public static void main(String[] args)
- {
- SaleTicket t =new SaleTicket();
- new Thread(t).start();
- new Thread(t).start();
- new Thread(t).start();
- new Thread(t).start();
- }
- }
- class SaleTicket implements Runnable
- {
- private int ticket=100;
- public void run()
- {
- while(ticket>0)
- {
- /*
- 假如线程0、1、2、3都进来了
- 然后0线程执行了 然后1、2、3都执行
- 结果会出现负数 说明1、2、3执行后打印的ticket是ticket--之后的数据
- 那为什么会出现小数据打印后还会打印大数据的现象呢???
- ----->比如 0线程打印了63 出现1线程打印64是什么原因?
- */
- try
- {
- Thread.sleep(10);
- }
- catch (Exception e)
- {
- }
- System.out.println(Thread.currentThread().getName()+"run...:"+ticket--);
- }
- }
- }
复制代码
|