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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qinpeiwei881211 中级黑马   /  2015-5-22 11:57  /  506 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Ticket implements Runnable
  2. {
  3.         private int tick = 100;
  4.         Object obj = new Object();
  5.         public void run()
  6.         {
  7.                 while(true)
  8.                 {
  9.                         synchronized(obj)
  10.                         {
  11.                                 if(tick>0)
  12.                                
  13.                                 try
  14.                                 {
  15.                                         Thread.sleep(1);
  16.                                 }
  17.                                 catch(Exception e)
  18.                                 {
  19.                                        
  20.                                 }
  21.                                
  22.                                 System.out.println(Thread.currentThread().getName()+"..."+tick--);
  23.                         }
  24.                        
  25.                 }
  26.         }
  27. }

  28. class TicketTest
  29. {
  30.         public static void main(String[] args)
  31.         {
  32.                 Ticket t = new Ticket();
  33.                 Thread t1 = new Thread(t);
  34.                 Thread t2 = new Thread(t);
  35.                 Thread t3 = new Thread(t);
  36.                 Thread t4 = new Thread(t);
  37.                 t1.start();
  38.                 t2.start();
  39.                 t3.start();
  40.                 t4.start();
  41.                
复制代码
同步代码块加上了为什么还会出现负数的票。求指点

3 个回复

倒序浏览
跟现在的电脑有关系么?
回复 使用道具 举报
应该是你run方法中的if语句,if后面应该把try catch和输出语句都用 { } 包括进去
回复 使用道具 举报
小悟空et 发表于 2015-5-22 13:25
应该是你run方法中的if语句,if后面应该把try catch和输出语句都用 { } 包括进去 ...

晕死 ,忘加了 ,我说怎么回事呢,:L 谢啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马