sleep:在睡觉,要睡够了你才叫得醒
wait:在等你叫它

解决方案 »

  1.   

    sleep是Thread类的静态方法。sleep的作用是让线程休眠制定的时间,在时间到达时恢复,也就是说sleep将在接到时间到达事件事恢复线程执行,例如:try{
       System.out.println("I'm going to bed");
       Thread.sleep(1000);
       System.out.println("I wake up");
    }
    catch(IntrruptedException e) {
    }
    wait是Object的方法,也就是说可以对任意一个对象调用wait方法,调用wait方法将会将调用者的线程挂起,直到其他线程调用同一个对象的notify方法才会重新激活调用者,例如:
    //Thread 1try{
       obj.wait();//suspend thread until obj.notify() is called
    }
    catch(InterrputedException e) {
    }
      

  2.   

    sleep和wait的挂起是不会消耗CPU资源的
      

  3.   

    public class b4_01_04
    {
    public static void main(String args[]){
    mt414 r1=new mt414("多多1号机");
    mt414 r2=new mt414("多多2号机");
    Thread t1=new Thread(r1);
    Thread t2=new Thread(r2);
        t1.start();
        t2.start();
    }
    }
    class mt414 implements Runnable{
    private String name;
    public mt414(String str1){
    name=str1;
    }
    public void run(){
    for(int i=0;i<10000;i++){
    try{
    System.out.println(name+":"+(int)((Math.random()*42+1)));
    Thread.sleep(1000);
    }catch(InterruptedException e){return;}
    }
     }
    }
    sleep的例子你运行看一下就明白了.
      

  4.   

    synchronized锁定机制可以避免线程间的相互影响,但是我们还需要一种能在线程间进行通信的方法。为达此目地,wait方法允许线程等待,直到某条件成立,通知方法(notificationmethod)notify和notifyAll
      

  5.   

    我在书上看到wait和sleep的最大区别是wait可以释放当前线程锁定的任何对象,而sleep不能。
    可是一个线程sleep后难道还保持着对该线程所拥有的对象的锁定吗?
      

  6.   

    回复人: liuchunjp() ( ) 信誉:100  2005-3-1 13:54:02  得分: 0  
       
    sleep几乎不耗费资源
     
    //============================================= 
    回复人: Polarislee(北极星)(灌水是我无言的抗议) ( ) 信誉:110  2005-3-1 14:19:09  得分: 0  
        
    sleep和wait的挂起是不会消耗CPU资源的
    //============================================楼上说的对我都是一个惊喜!
    是真的吗?我记得在什么地方见过 说:
    sleep()是什么什么建立了一个内循环,是非常消耗资源的?
    不知道是怎么回事.