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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package cn.itcast.day26_Prictice;
/**
* 编写程序,完成模拟3个窗口共卖100张票的程序,并测试。
* 关键是: 锁,放的位置
*/
public class Prictice2 {
        public static void main(String[] args) {
                // 创建一个runnable接口的子类
                TicketsWindow tw = new TicketsWindow();
                // 创建一个线程对象
                Thread window1 = new Thread(tw);
                window1.setName("1窗口");
               
                Thread window2 = new Thread(tw);
                window2.setName("2窗口");
               
                Thread window3 = new Thread(tw);
                window3.setName("3窗口");
               
                // 窗口开始卖票了
                window1.start();
                window2.start();
                window3.start();
        }

}
另一个类:
package cn.itcast.day26_Prictice;

public class TicketsWindow implements Runnable {

        static int tickeks = 100;

        @Override
        public void run() {
                for (int i = 1; i <= 100; i++) {
                        // 锁,解决线程不安全问题
                        synchronized (this) {
                                if(tickeks == 0) {
                                        System.out.println(Thread.currentThread().getName()+"没票了...");
                                        break;
                                } else {
                                        System.out.println(Thread.currentThread().getName() + "正在卖票啦.." + "第" + (100-tickeks+1) + "张票..");
                                        tickeks--;
                                }
                        }
                }
        }
}



1 个回复

正序浏览
非常的不错,我们也学习到这里了,加油,哈哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马