代码Lighter.java:

 package pack1;
/**
* 灯线程
* @author Administrator
*
*/
public class Lighter extends Thread{
//代表灯当前的状态(这里只考虑红绿两种状态)
public String state;
public void run(){
while (true){
try {
//初始状态设为红灯,且红灯时常为10s
state = "red";
System.out.println("lighter:现在是红灯,静止车辆通行");
Thread.sleep(10*1000);
//10s后灯变绿,设绿灯时间位5秒
state = "green";
System.out.println("lighter:现在变绿灯了,车辆可以通行了。");
Lighter.sleep(5*1000);
} catch (InterruptedException e) {
System.out.println("出错了:"+e);
}
}
}
}

代码Car.java

package pack1;
/**
* 车辆线程
* @author Administrator
*
*/
public class Car extends Thread{
String name="";
//灯作为私有变量,车辆根据灯的状态决定是否要停止
private Lighter lighter;
public Car(String name,Lighter l){
this.name=name;
this.lighter=l;
}
public void run(){
if (lighter.state.equals("red")){
System.out.println(this.name+":等待中");
}else{ System.out.println(this.name+":通过了红绿灯");
}
}
}

测试代码RglightTest.java

 package pack1;
/**
* 红绿灯测试代码
* @author Administrator
*
*/
public class RglightTest {
public static void main(String[] args) throws InterruptedException {
Lighter l=new Lighter();
//红绿灯开始运行
l.start();
//生成20个车辆,依次通过红绿灯
for(int i=0;i<20;i++){
Car c=new Car("car"+i+1,l);
//当前车辆睡眠1s
c.sleep(1000);
c.start();
}
}
}

最新文章

  1. 帆软报表FineReport中数据连接之Weblogic配置JNDI连接
  2. mysql日期格式化
  3. Java并发编程底层实现原理 - volatile
  4. Wordpress制作sidebar.php
  5. tomcat 7 中的类加载器学习
  6. 图的连通性:有向图强连通分量-Tarjan算法
  7. Linux文件系统中硬链接和软链接的区别 (转)
  8. 开源Android-PullToRefresh下拉刷新源代码分析
  9. 原生 table css实现操作按钮固定右侧及底部滚动 IE不会卡死
  10. XPath、CSS 选择器 -学习地址
  11. centos 6.5 安装 tomcat8 及性能优化_虚拟主机
  12. Spring Boot微服务如何集成fescar解决分布式事务问题?
  13. 学习用Node.js和Elasticsearch构建搜索引擎(5):mac本机部署canal
  14. [转] linux学习第四十四篇:Nginx安装,Nginx默认虚拟主机,Nginx域名重定向
  15. 异步IO(协程,消息循环队列)
  16. three.js学习:初学three.js,从立方体开始
  17. Arctic Network---poj2349 最小生成树
  18. MyEclipse移动开发教程:迁移HTML5移动项目到PhoneGap(二)
  19. Docker 私有registry出现的证书问题
  20. 如何使用Replace Pioneer批量查找和替换并提取指定字符串

热门文章

  1. ABAP 将Range 条目数转化
  2. GCD 开启一个定时器实现倒计时功能
  3. poj2513 Colored Sticks —— 字典树 + 并查集 + 欧拉回路
  4. Chrome 插件 Vimium——让你脱离鼠标
  5. 对xml文件的sax解析(增删改查)之一
  6. 编辑xml文件时不能自动提示问题的解决
  7. Android-利用LinearGradient实现文字一闪一闪
  8. vue 表单验证省市县三联动
  9. C语言解释器的实现--存储结构(一)
  10. Python批量操作Linux服务器执行命令