我希望有人会帮助我。我一直在尝试用 java Threads 做一个红绿灯。有两个圈。每个圆圈都是一盏灯(线)。我希望每盏灯工作 x 毫秒,然后关闭并让另一盏灯工作(一次又一次..)
public void run()
{
while (true)
{
repaint();
if (working)
{
System.out.println(name + " is WORKING ");
try
{
Thread.sleep(LAMP_WORKING_TIME);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
System.out.println(name + " has done working");
synchronized (lock)
{
this.working = false;
lock.notifyAll();
}
}
else
{
try
{
System.out.println(name + " is waiting..");
synchronized (lock)
{
lock.wait();
working = true;
}
System.out.println(name + " is WAKING UP AFTER WAIT");
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
}
当 lock 被声明为类的属性时:
private final Object lock = new Object();
我相信我的问题是通过等待/通知方法发生的。请帮我解决这个问题!