第一个到10notify第二个,wait
第二个...到10notify第一个,wait
。。

解决方案 »

  1.   

    不太明白,主要是,在同步方法里面调用wait()和notify()不太理解。。能写一小段列子给我吗!?
    谢谢啦!!
      

  2.   

    线程在临界区种等待共享变量状态改变时调用wait(),
    当其它线程改变了共享变量,只要调用notify()就可以通知正在等待的现成重新占用管程并唤醒该线程所以关键是找到一个共享变量,从而来实现同步
      

  3.   

    class Q
    {private boolean Flag=false;
    public synchronized void get(){
    if(!Flag)
    try{wait();}catch(Exception e){}
    for(int i=0;i<10;i++)
    System.out.println("取出"+(i+1));
    Flag=!Flag;
    notify();


    }


    public synchronized void put(){
    if(Flag)
    try{wait();}catch(Exception e){}
    for(int i=0;i<10;i++)
    System.out.println("放入"+(i+1));
    Flag=!Flag;
    notify();
    }}
    class produce implements Runnable{
    Q q;
    public produce(Q q)
    {
    this.q=q;
    }public void putS(){

    q.put();

    }


    public void run(){

    while(true)
    putS();
    }}
    class customer implements Runnable{
    Q q;
    boolean F=false;
    int i=0;
    public customer(Q q)
    {
    this.q=q;
    }public void getS(){

    while(!F)
    {
    q.get();


    }


    }
    public void stop(){

    F=true;

    }public void run(){

    while(true)
    getS();
    }
    }public class ThreadTest{
    public static void main(String[] arg){
    Q q=new Q();
    new Thread(new produce(q)).start();
    customer t=new customer(q);
    new Thread(t).start();

    }}这是地二个,第一个和这差不多.
      

  4.   

    http://blog.csdn.net/treeroot/archive/2004/11/10/175508.aspx
    http://blog.csdn.net/treeroot/archive/2004/11/11/176976.aspx