怎么使一个线程休眠? 然后在在需要的时候唤醒?
类是继承Thread的,或有什么其他好的方法?

解决方案 »

  1.   

    wait()和notify()不过要在同步的状态下
      

  2.   

    自己sleep,睡饱了自然会醒的
      

  3.   

    Thread  类中的方法   。。
      也可以用其对象的VISIBLE 属性  设为FALSE 时  停止,TRUE时运行。
      

  4.   

    suspend()
    让它挂着休眠,行不行?
      

  5.   

    wait()+notify()||notifyAll()
    其他方法都是deprecated的
      

  6.   

    在课件里找到的,你看看有没有用:
    等待(sleep, wait, notify, notifyAll)
    sleep, 不出让其资源(锁)
    sleep(最少睡眠时间)
    Thread中定义
    wait,释放其所控制的资源(锁)(suspend())
    wait(最少等待时间) //等待,直到其他线程调用notify()/notifyAll() ,或时间到
    wait() //等待,直到notify/notifyAll
    Object中定义
    notify/notifyAll, 通知一个或所有等待线程 
                                                                     (resume())
    Object中定义
      

  7.   

    wait必须是在synchronized关键字中调用,否则不起作用!
      

  8.   

    在需要唤醒的时候实例化一个对象不行吗?或者需要有个线程对象一直跑着,直到被“唤醒”,才做一些事情。
    (这里的“唤醒”是被传递或接收到了一个消息的意思)楼主的需求再描述清楚点就好了。good luck
      

  9.   

    用sleep()啊,它里面可以传入参数的,就是指睡觉的时间啊.里面的参数是毫秒啊sleep(1000);//1秒后醒过来
      

  10.   

    你的终止休眠的条件是什末?如果是时间,用sleep 好了
    如果是其他的,可以用IO,或socket来
    使线程等待,然后从另外一个进程写这个socket来启动它。
      

  11.   

    原来是用sleep(5*1000)的,只有一个线程. 在线程的run中原来是一直要检查数据库的,现在要sleep下去,知道有其他对象通知它从新去检查数据库,就是唤醒的意思,不知道明白了没有?
      

  12.   

    1. 
    while( !shouldStop ){
         // scan database ..
         Thread.sleep( 5  * 1000 );
    }2.
    Object alert =  ..
    线程SCANNER.while( !shouldStop){
          // scan database.
          alert.wait(); // 等。
    }线程 ALERT : 
    if( /* 打雷了,下雨了,快收衣服 ^_^ */ ){
       alert.notifyAll();
    }
      

  13.   

    还是用wait()和notify()
    这个是比较好的方法!
      

  14.   

    在其他的类中获得这个线程的引用就可以了,线程中提供可以执行notify的方法
      //恢复已经暂停的线程
      public synchronized void xxxxx()
      {
        this.notify();
      }这样在其他的类中执行这个线程引用中的xxxx方法就可以了