两者最主要的区别在于:sleep 方法没有释放锁只是让出CPU等待指定时间,而 wait 方法释放了锁 。 两者都可以暂停线程的执行。 Wait 通常被用于线程间交互/通信,sleep 通常被用于暂停执行。 wait() 方法被调用后,线程不会自动苏醒,需要别的线程调用同一个对象上的 notify() 或者 notifyAll() 方法。sleep() 方法执...
不同点: sleep()方法没有释放锁,而 wait()方法释放了锁。 sleep()方法属于Thread类的静态方法,作用于当前线程;而wait()方法是Object类的实例方 法,作用于对象本身。 执行sleep()方法后,可以通过超时或者调用interrupt()方法唤醒休眠中的线程;执行wait() 方法后,通过调用notify()或notifyAll()方法唤醒等待线程。
有两点最主要的区别: 任何线程都可以调用sleep()方法进入休眠状态,但是只有获取synchronized隐式锁的线程,才能调用wait()方法 同时wait()方法主要用于等待/通知机制,除了超时机制,还能通过调用notify()和notifyAll()让线程状态转变为RUNNABLE
今天写一遍文章简单说明一下sleep和wait的区别。 1、方法所属的对象不同 我们可以通过查看sleep和wait的源码可以看到两者的附属不同。 sleep是属于Thread线程类的方法。 而wait是Object类的方法 2、可调用方法的位置不同 sleep方法可以不在synchronize...
sleep() 方法和 wait() 方法区别和共同点2573 Sleep()方法和wait()方法都用来改变线程的状态,能够让线程从运行状态,转变为休眠状态。 更加具体来讲: 调用sleep()方法和带有超时参数的wait()方法,都会让线程状态从RUNNABLE,变为TIMED_WATING 调用无参的wait()方法,会让线程状态从RUNNABLE变为WATING 有两点最主要...