黑马程序员技术交流社区

标题: 火车站卖票 [打印本页]

作者: Demo_黑马    时间: 2016-5-26 22:52
标题: 火车站卖票
  1. package com.heima.syn;

  2. public class Demo4_Ticket {

  3.         /**
  4.          * @param args
  5.          * 火车站卖票的例子用实现Runnable接口
  6.          */
  7.         public static void main(String[] args) {
  8.                 MyTicket mt = new MyTicket();
  9.                 new Thread(mt).start();
  10.                 new Thread(mt).start();
  11.                 new Thread(mt).start();
  12.                 new Thread(mt).start();
  13.                
  14.                 /*Thread t1 = new Thread(mt);                                //多次启动一个线程是非法的
  15.                 t1.start();
  16.                 t1.start();
  17.                 t1.start();
  18.                 t1.start();*/
  19.         }

  20. }

  21. class MyTicket implements Runnable {
  22.         private int tickets = 100;
  23.         @Override
  24.         public void run() {
  25.                 while(true) {
  26.                         //synchronized(MyTicket.class) {
  27.                         synchronized(this) {
  28.                                 if(tickets <= 0) {
  29.                                         break;
  30.                                 }
  31.                                 try {
  32.                                         Thread.sleep(10);                                //线程1睡,线程2睡,线程3睡,线程4睡
  33.                                 } catch (InterruptedException e) {
  34.                                        
  35.                                         e.printStackTrace();
  36.                                 }
  37.                                 System.out.println(Thread.currentThread().getName() + "...这是第" + tickets-- + "号票");
  38.                         }
  39.                 }
  40.         }
  41. }
复制代码



作者: 我有上将潘凤    时间: 2016-5-26 22:54
千斤顶。。。。。
作者: zhenying.wang    时间: 2016-5-27 00:16
如果是Runnable实现的,那么加自定义名称的话好加吗
作者: woshijingke    时间: 2016-5-27 00:26

如果是Runnable实现的,那么加自定义名称的话好加吗
作者: Demo_黑马    时间: 2016-5-27 22:01
我有上将潘凤 发表于 2016-5-26 22:54
千斤顶。。。。。

啥意思?
作者: Itheima_yuan    时间: 2016-5-27 22:06
后面优化一下输出
System.out.println(Thread.currentThread().getName() +"卖出第"+(101-ticket--)+"张票");
我觉得这样比较好
作者: Kingchen    时间: 2016-5-27 22:14
Java中多线程的知识。
作者: Demo_黑马    时间: 2016-5-27 22:31
zhenying.wang 发表于 2016-5-27 00:16
如果是Runnable实现的,那么加自定义名称的话好加吗

不知道唉,貌似不好加。。。
作者: Demo_黑马    时间: 2016-5-27 22:32
woshijingke 发表于 2016-5-27 00:26
如果是Runnable实现的,那么加自定义名称的话好加吗

为什么要加自定义名称啊。。。大神给个解释哦,
作者: zhenying.wang    时间: 2016-5-28 00:31
就是加自定义的话显示更方便啊,比如说改为窗口XX
作者: feey    时间: 2016-5-28 22:47
谢谢分享





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2