A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

票数使用static修饰的    (共20张);
第二十张票卖了两次;
是什么原因呀,如果改,怎么弄;
哪位大神指点一二
  1. public class TicketDemo {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 Ticket T1=new Ticket("T1");
  7.                 Ticket T2=new Ticket("T2");
  8.                 T1.start();
  9.                 T2.start();
  10.         }

  11. }

  12. class Ticket extends Thread{
  13.         private static int t=20;
  14.         public Ticket(String name){
  15.                 super(name);
  16.         }
  17.         public void run(){               
  18.                 while(true){
  19.                         if (t>0){
  20.                                 System.out.println(this.getName()+"  ticket----"+t);
  21.                                 t--;
  22.                         }
  23.                 }
  24.         }
  25.        
  26. }
复制代码

这个是打印结果



6 个回复

倒序浏览
加同步呗   synchronized
回复 使用道具 举报
还没看到这呢,加油
回复 使用道具 举报
多线程不加同步锁不行。线程是随机抢到cpu的。
回复 使用道具 举报
我如果只同步if语句还是出现两张20的票

s1.png (112.18 KB, 下载次数: 9)

s1.png
回复 使用道具 举报
IF以后在套锁?》
回复 使用道具 举报
fwqk123 发表于 2015-10-15 17:27
IF以后在套锁?》

还是出现两张20 的票
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马