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

© fmi110 高级黑马   /  2015-9-22 21:43  /  367 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

a
  1. package ticket.demo;

  2. public class SellDemo2 {
  3.         public static void main(String[] args) {
  4.                 MyRunnable m = new MyRunnable(new TicketShared());
  5.                 for (int i = 0; i < 3; i++) {
  6.                         new Thread(m).start();
  7.                 }
  8.         }

  9. }

  10. class MyRunnable implements Runnable {
  11.         private TicketShared t;

  12.         public MyRunnable(TicketShared t) {
  13.                 super();
  14.                 this.t = t;
  15.         }
  16.         @Override
  17.         public void run() {
  18.                 while(true){
  19.                         try {
  20.                                 Thread.sleep(50);
  21.                         } catch (InterruptedException e) {
  22.                                 // TODO Auto-generated catch block
  23.                                 e.printStackTrace();
  24.                         }
  25.                         t.dec();
  26.                 }
  27.         }
  28. }

  29. class TicketShared {
  30.         private int t = 100;

  31.         public synchronized void dec() {
  32.                 if (t > 0) {
  33.                         t--;
  34.                         System.out.println(Thread.currentThread().getName() + "...售出一张,剩余"
  35.                                         + t);
  36.                 } else {
  37.                         System.out.println("票售完了~~");
  38.                         System.exit(0);
  39.                 }
  40.         }
  41. }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马