今天开发中,出现IllegalMonitorStateException,自己再认真研究一下生成者和消费者模式,感觉wait和nofy()应该是同一个对象的方法,写了测试程序如下,以备后忘
public class Main
{
private Sec sec;
private Object lock;
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
new Main();
}
public Main()
{
lock = new Object();
sec = new Sec(lock);
Thread t = new Thread(sec);
t.start();
synchronized (lock)
{
try
{
lock.wait();
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("------------main----------");
}
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、
public class Sec implements Runnable
{
private Object lock;
public Sec(Object lock)
{
this.lock = lock;
}
public void run()
{
// TODO Auto-generated method stub
System.out.println("---------run ()---------");
synchronized (lock)
{
lock.notify();
}
}
}