wait是使当前线程等待对象锁,是Object的方法,怎么可能使线程停止?
而是使当前线程等待!

解决方案 »

  1.   

    长,没看
    有个办法可以实现
    写2个静态的boolean成员,对应要控制的2个线程,由第3个线程控制这两个成员的真假。
    被控制的2个线程,不停的去检查这两个值,为真的时候执行线程体,假的时候用yield()放弃执行就是了
      

  2.   

    设置一个boolean变量,不停检查这个值的值.
      

  3.   

    class mythread extends Thread
    {
        TextField text;
        volatile boolean wait;
        mythread(TextField t)
        {
            text=t;
            wait=false;
        }
        synchronized public void w()
        {
            synchronized(this){
             wait=true;
            }   
        }
        synchronized public void n()
        {
            synchronized(this){
             wait=false;
             notify();
            }   
        }
        public void run()
        {
            for(int i=0;i<=1000;i++)
            {
             while(wait){
             try{
             wait();
             }
             catch(Exception e){};
             }
                text.setText("i="+i);
                try{
                sleep(500);
                }
                catch(Exception e)
                {
                }
            }
        }
    }
    //this 是可以改成其它的的
      

  4.   

    楼主可能误解了wait和notify.首先这两个方法是Object的方法,但是往往又和多线程联系在一起,确实又和
    Thread这个类没有一定的关系,比如Thread的join方法就是调用了wait方法.
    但是这两个方法和Thread没有直接的关系,你不希望调用一个Thread实例的
    wait方法要让这个线程等待,其实是当前线程在等待这个Thread实例的同步锁(这里
    和其他的Object一样).