让这两个线程抢一个对象的锁去。。。作者: 罗宵 时间: 2012-7-25 21:56
class Consumer implements Runnable 类中你用的 synchronized (this) 的锁是this,代表Consumer,
class Producer implements Runnable {类中你用的synchronized (this) 的锁是this,代表Producer ,
这两个方法中的锁不是同一把,所以相互间是锁不住的。
这两个类都是对Info进行操作。所以可以把Info当作参数传给Consumer(里面创建带参构造,传Info)和Producer(里面创建带参构造传Info) 。
在同步的时候,都以Info为锁。这样的话在主方法中
public class ThreadCaseDemo02 {
public static void main(String args[]) {
Info info = new Info(); // 实例化Info对象
Producer pro = new Producer(info); // 生产者
Consumer con = new Consumer(info); // 消费者
new Thread(pro).start();
new Thread(con).start();
}就可以了
};