黑马程序员技术交流社区

标题: 悬赏求解 回帖都有金币奖励 ~~ [打印本页]

作者: 胡帅冰    时间: 2013-5-31 18:05
标题: 悬赏求解 回帖都有金币奖励 ~~
本帖最后由 胡帅冰 于 2013-6-2 10:06 编辑

  1. import java.util.*;

  2. class TrafficTest
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 String [] direction = {"S2N"};

  7.                 for(int i=0;i<direction.length;i++)
  8.                 {
  9.                         new Thread(new Road(direction[i])).start();
  10.                         new Thread(new Road_2()).start();
  11.                 }
  12.         }
  13. }

  14. class Road implements Runnable
  15. {
  16.         private String name;
  17.         private        ArrayList<String> car;
  18.         private boolean flg=true;

  19.         Road(String name)
  20.         {
  21.                 this.name=name;

  22.         }
  23.         Road()
  24.         {
  25.         }

  26.         public ArrayList<String> getCar()
  27.         {
  28.                 return car;
  29.         }
  30.         public boolean getFlg()
  31.         {
  32.                 return flg;
  33.         }

  34.         private void comeCar()
  35.         {
  36.                 car=new ArrayList<String>();

  37.                 for(int i=0;i<5;i++)
  38.                 {
  39.                         try
  40.                         {
  41.                         //Thread.sleep(new Random().nextInt(10)*1000+1);
  42.                                 synchronized(TrafficTest.class)
  43.                                 {
  44.                                         car.add(this.name+"_"+i);
  45.                                 }
  46.                         }
  47.                         catch (Exception e)
  48.                         {
  49.                                 System.out.println(e.getMessage());
  50.                         }
  51.                         System.out.println("方向为:: "+this.name+"...的第"+i+"辆车来了。。。");
  52.                 }
  53.                 for(Iterator<String> it=car.iterator();it.hasNext();)
  54.                 {
  55.                         System.out.println(it.next());
  56.                 }
  57.         }
  58.         public void run()
  59.         {
  60.                 comeCar();
  61.         }
  62. }
  63. class Road_2 extends Road  implements Runnable
  64. {
  65.         public void run()
  66.         {
  67.                 ArrayList<String> car=getCar();
  68.                 boolean flg=getFlg();
  69.                         while(true)
  70.                         {
  71.                                         synchronized(TrafficTest.class)
  72.                                         {
  73.                                                 if(flg)
  74.                                                 {
  75.                                                         System.out.println(car.remove(0)+"is go");
  76.                                                 }
  77.                                         }
  78.                         }
  79.         }
  80. }
复制代码
求解怎么解决这个问题。问题一: 为什么这个空指针异常会出现在运行的时候??
问题二: 怎么解决,怎么实现同步??
说明:这个是在交通灯视频看过之后,我写的一段测试Road类的,使用的是实现Runnable类,没有使用视频中的Executor框架的Executors工具类。
谢谢各位了。。。。

作者: 李阳阳    时间: 2013-5-31 18:29
其实  我只是   来拿金币的
作者: 胡帅冰    时间: 2013-5-31 18:32
李阳阳 发表于 2013-5-31 18:29
其实  我只是   来拿金币的

哇嘎,来人,拖出去乱棍打死。。。:lol
作者: crazy    时间: 2013-8-21 21:02
其实,我不是来拿金币的
作者: 佛山java爱好者    时间: 2014-7-9 08:15
有吗有吗
作者: hmid    时间: 2014-7-30 00:48
还有吗?(*^__^*) 嘻嘻……
作者: Faith_Yee    时间: 2014-9-8 09:11
奖励在哪里




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