一个生产者(Producer)和消费者(Consumer)进程同步的示例。
生产者不断调用Put(),消费者不断调用Get()。
valueset相当于信号量(锁)的作用。

解决方案 »

  1.   

    晕,说了半天不占边的话。
    wait()就是进程等待消息,也就是把自己阻塞,不向下运行。
    nofify()则是唤醒阻塞的进程。
    工作过程如下:
    valueset为true时,producer生产东西i。然后阻塞自己,唤醒消费者。
    valueset为false时,consumer消费producer生产的东西i,阻塞自己,唤醒生产者。
    and so on.
      

  2.   

    不知道对不对,发表意见如下:synchronized int get() 为什么要用 synchronized? 我觉得此程序不用synchronized 也可以。 主要是那个变量起到了lock的作用。 下面说明一下,为什么wait() 和 notify() 其作用。因为他们被加到Q的waiting list. 而notify() 也是Q 这个对象发出的。