我有代码,我正在学习Thread
。我不明白它在下面的代码中是如何工作的。我的代码正在处理交通灯处理。你能用下面的代码解释一下吗?
public void run(){
while(!stop){
try{
switch(lc){
case GREEN:
Thread.sleep(1000);break;//pause for ten second;
case RED:
Thread.sleep(2000);break;
case YELLOW:
Thread.sleep(1000);break;
}
}
catch(Exception exc){}
colorChange();
}
}
synchronized void colorChange(){
switch(lc){
case GREEN:
lc=LightColor.YELLOW;break;
case YELLOW:
lc=LightColor.RED;break;
case RED:
lc=LightColor.GREEN;break;
}
changed=true;
notify();
}
synchronized void waitChange(){
while(!changed)
try {
wait();
changed=false;
} catch (InterruptedException ex) {
Logger.getLogger(ControlLight.class.getName()).log(Level.SEVERE,null, ex);
}
}
答案 0 :(得分:0)
要解释的简要说明是:
var nodes = document.querySelectorAll('#list > *:not([type="text/javascript"])');
alert(nodes.length);
有关Thread的详细信息,请参阅:http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#wait%28%29
希望这有帮助!
答案 1 :(得分:0)
wait():告诉调用线程放弃监视器并进入休眠状态,直到某个其他线程进入同一个监视器并调用notify()。
notify():唤醒在同一个对象上调用wait()的第一个线程。
wait-notify
模式用于一组广泛的案例,其中一个线程需要告诉其他线程发生了某些事件。这些方法旨在提供一种机制,允许线程阻塞,直到满足特定条件。