package com.itcast.traffic; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; /** * 每个Road对象代表一条路线,总共有12条路线,即系统中总共要产生12个Road对象实例 * 每条路线上随机增加新的车辆,增加到一个集合中保存 * 每条路线每隔一秒都会检查控制本路线的灯是否为绿,是则将本路线保存车的集合中的第一辆车移除,即表示穿过了路口 * @author Administrator * */ public class Road { private List<String> vehicles = new ArrayList<String>(); private String name = null; public Road(final String name){ this.name = name; //模拟车辆不断随机上路的过程 ExecutorService pool = Executors.newSingleThreadExecutor(); pool.execute(new Runnable(){ @Override public void run() { for(int i = 1;i<1000;i++){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } vehicles.add(Road.this.name + "_" + i); } } }); //每隔一秒检查对应的灯是否为绿,是则放行一辆车 ScheduledExecutorService timer = Executors.newScheduledThreadPool(1); timer.scheduleAtFixedRate( new Runnable(){ @Override public void run() { if(vehicles.size()>0){ boolean lighted = Lamp.valueOf(name).isLighted();; if(lighted){ System.out.println(vehicles.remove(0) + " is traversing"); } } } }, 1, 1, TimeUnit.SECONDS); } }
最近下载更多
ming_123_9715 LV23
2021年10月22日
与你同行2019 LV11
2021年2月26日
2196316269 LV10
2021年2月25日
superadmin001 LV1
2021年2月12日
qiuqiu555 LV1
2020年11月15日
ListenMuDi LV2
2020年6月14日
小糊涂 LV1
2020年6月3日
茅屋为秋风所破歌 LV1
2020年4月5日
20181107 LV4
2019年12月14日
2818821836 LV11
2019年4月17日
最近浏览更多
uid0901 LV2
4月2日
y1214435276 LV9
2023年7月4日
GT2002220 LV2
2023年6月9日
微信网友_6508798513811456 LV5
2023年6月7日
泓鼎168 LV20
2023年3月31日
15342201772 LV9
2022年12月10日
未交定金
2022年10月26日
暂无贡献等级
王俊杰1
2022年9月22日
暂无贡献等级
zhaoyangwfd LV17
2022年6月24日
Code_Pianist LV2
2022年6月17日