这个只是一个简单的实现,初步展示线程,要解决楼主的问题,就要用到锁,就说没有锁的话,比如说最后一张票,几个线程都会去抢,可以sleep(xx),你就会看到会打印负数。

解决方案 »

  1.   

    private int tick=100;    这个是共享数据,有重复很正常。
      

  2.   

    这个多个线程同时操作共享数据, 出现重复很正常; 你把tick调大些, 比如100000, 再试试.
      

  3.   

    你这个肯定有问题啊,都没加锁,可以参考文章http://blog.csdn.net/skywalker_only/article/details/38927919
      

  4.   

    这和有没有public没有关系出现重复是因为多线程共享了tick这个字段,而对于tick--,并非原子操作,所以会发生线程安全问题,发生重复