今天开发中,出现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();
}
}
}
本文通过一个简单的Java程序演示了如何使用synchronized关键字实现线程间的同步,并解释了wait和notify方法的正确用法,帮助读者理解Java并发编程的基础。

4万+

被折叠的 条评论
为什么被折叠?



