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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一个停车场一共有50个车位, 建立两条线程模拟两个入口. 随机停没有停过车的车位,停完提示车位已满.
public static void main(String[] args) {
                new CarStop("入口1").start();
                new CarStop("入口2").start();
        }
class CarStop extends Thread{
        private static int carStop = 50;
        ArrayList<Integer> list = new ArrayList<>();
        Random r = new Random();
               
        public CarStop(String name) {
                super(name);
        }
       
        public void run() {
               
               
                while (true) {
                        synchronized (CarStop.class) {
                               
                                if (carStop == 0) {
                                        System.out.println("车位已满");
                                        break;
                                }
                                int num = r.nextInt(50)+1;
                                if (!list.contains(num)) {
                                        list.add(num);
                                        carStop--;
                                        System.out.println("从" + getName() + "进入,停在" + num +"车位还剩" + carStop + "个车位");
                                }
                               
                        }
                }
        }
}

5 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
集合要加静态吧?
回复 使用道具 举报
再来两个出口。模拟不停地停车出车。。
回复 使用道具 举报
UZI 中级黑马 2016-10-30 00:17:45
地板
poi1234bnm 发表于 2016-10-29 23:34
再来两个出口。模拟不停地停车出车。。

那样就死循环了..
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马