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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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--) + "张票");
                        }
                }
        }
}


评分

参与人数 1技术分 +1 收起 理由
刘福双 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
你这是想表达什么呢。创建线程的两种方式,一种是通过继承Thread,这种方式不可以资源共享,而且还不能继承其他类。一般都用实现Runnable接口的方式,这样既可以继承其他类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马