黑马程序员技术交流社区

标题: 黑马测试题多线程模拟售票窗口案列 [打印本页]

作者: 没说的话……    时间: 2014-12-14 20:50
标题: 黑马测试题多线程模拟售票窗口案列
public class SellTicketDemo {
        public static void main(String[] args) {
                // 创建三个线程对象
                SellTicket st1 = new SellTicket();
                SellTicket st2 = new SellTicket();
                SellTicket st3 = new SellTicket();

                // 给线程对象起名字
                st1.setName("窗口1");
                st2.setName("窗口2");
                st3.setName("窗口3");

                // 启动线程
                st1.start();
                st2.start();
                st3.start();
        }
}public class SellTicket extends Thread {

        // 定义100张票
        // private int tickets = 100;
        // 为了让多个线程对象共享这100张票,我们其实应该用静态修饰
        private static int tickets = 100;

        @Override
        public void run() {
                // 定义100张票
                // 每个线程进来都会走这里,这样的话,每个线程对象相当于买的是自己的那100张票,这不合理,所以应该定义到外面
                // int tickets = 100;

                // 是为了模拟一直有票
                while (true) {
                        if (tickets > 0) {
                                System.out.println(getName() + "正在出售第" + (tickets--) + "张票");
                        }
                }
        }
}



作者: I空空    时间: 2014-12-14 21:32
你这是想表达什么呢。创建线程的两种方式,一种是通过继承Thread,这种方式不可以资源共享,而且还不能继承其他类。一般都用实现Runnable接口的方式,这样既可以继承其他类




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