黑马程序员技术交流社区

标题: 我写了交通管理系统Road类,可是测试不正确 [打印本页]

作者: 风叶漂    时间: 2013-9-8 10:58
标题: 我写了交通管理系统Road类,可是测试不正确
代码:import java.util.ArrayList;
import java.util.Random;

public class Road {
     public String name;//
     ArrayList< String> cars=new ArrayList<String>();
public Road(String name) {
  super();
  this.name = name;
  
  Thread th1=new Thread(new Runnable() {
  
   @Override
   public void run() {
   
  for(int i=0;i<1000;i++)
   {
    try {
     Thread.sleep((new Random().nextInt(10) + 1) * 1000);
     //System.out.println("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
     cars.add(Road.this.name+"car"+i);
    } catch (InterruptedException e) {
     e.printStackTrace();
    }
   
   }
   }
  });
  th1.start();
  Thread th2=new Thread(new Runnable() {
   int count;
   @Override
   public void run() {
    System.out.println(cars.size());
    while(true)
    {
    if(cars.size()>0)
    {boolean flag=lamp.valueOf(Road.this.name).islight;
     if(flag)
     {
      System.out.println(cars.remove(0));
     }
   
    }
    }
   }
  });
  th2.start();
}

}
哪里错了啊,求指导

作者: 张歆明    时间: 2013-9-8 11:15
你用的是传统的线程技术是吧  你能把问题描述一下吗  仅仅给出代码  不容易分析
作者: 张歆明    时间: 2013-9-8 11:17
我没测试 你试试  把你的第二个线程类的代码替换为
  1. //每隔一秒放行一辆车
  2.         while(vehichles.size() >0){
  3.                 //1s放行一辆车
  4.                 try {
  5.                         Thread.sleep(1000);
  6.                 } catch (InterruptedException e) {
  7.                         e.printStackTrace();
  8.                 }
  9.                
  10.                 //观察是否可以通过这条路   ---- 观察这条路上的对应的交通灯对应的状态
  11.                 boolean lighted = Lamp.valueOf(Road.this.name).isLighted();
  12.                 if(lighted){
  13.                         System.out.println(vehichles.remove(0)+" is traversing!");
  14.                 }
  15.         }
复制代码

作者: 风叶漂    时间: 2013-9-8 13:44
张歆明 发表于 2013-9-8 11:17
我没测试 你试试  把你的第二个线程类的代码替换为

我做了测试第二个线程执行不到。
作者: 张歆明    时间: 2013-9-8 14:46
风叶漂 发表于 2013-9-8 13:44
我做了测试第二个线程执行不到。

那你有机会 把你的代码打个包 发出来 大家看看

作者: 风叶漂    时间: 2013-9-8 17:57
张歆明 发表于 2013-9-8 14:46
那你有机会 把你的代码打个包 发出来 大家看看

嗯,好的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2