在交通灯面试题中,有这样一段代码
public Road(String name){
this.name = name;
//启动一个线程模拟车辆上路的过程,即每隔一段时间向vechile集合中添加一两车
ExecutorService pool = Executors.newSingleThreadExecutor();
pool.execute(new Runnable(){
@Override
public void run() {
for(int i=0;i<1000;i++){
//睡眠1-10秒
try {
Thread.sleep((new Random().nextInt(10)+1)*1000);
vechiles.add(Road.this.name+"--"+i);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});} 这是在构造方法中创建并启动一个线程,但是对于其中的Road.this.name,这段代码不懂,虽说会用,但不知道为什么这样做,
还有就是张老师说可以将构造方法中name的参数前加上final,这个地方我也不知道为什么这样做,请大神指点啊
|