整体的区别其实是有四个:1、sleep是线程中的方法,但是wait是Object中的方法。2、sleep方法不会释放lock,但是wait会释放,而且会加入到等待队列中。3、sleep方法不依赖于同步器synchronized,但是wait需要依赖synchronized关键字。4、sleep不需要被唤醒(休眠之后推出阻塞),但是wait需要(不指定时间需要被别人中断)。下面我们就根据这四个区别
/* waitsleep区别 1.wait可以指定也可以不用指定时间, sleep必须指定时间 2.在同步中,对cpu的执行权释放不同 wait:释放执行权,释放锁; sleep:释放执行权,不释放锁; 1.首先,要记住这个差别,“sleep是Thread类的方法,wait是Object类中定义的方法”。 尽管这两个方法都会影响线程的执行行为,但是本质上是有区别的。 2
作者:孙立伟链接:http://www.zhihu.com/question/23328075/answer/24228413首先,要记住这个差别,“sleep是Thread类的方法,wait是Object类中定义的方法”。尽管这两个方法都会影响线程的执行行为,但是本质上是有区别的。Thread.sleep不会导致锁行为的改变,如果当前线程是拥有锁的,那么Thread.sleep不会让线程释放锁。
转载 精选 2016-09-01 10:03:40
1044阅读
对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象
转载 2017-05-10 23:39:09
335阅读
                 首先需要明白的是这两个方法根本来自不同的类,sleep来自Thread,wait来自Object类。           &n
本文是笔者 Java 学习笔记之一,旨在总结个人学习 Java 过程中的心得体会,现将该笔记发表,希望能够帮助在这方面有疑惑的同行解决一点疑惑,我的目的也就达到了。欢迎分享转载,转载请注明出处,谢谢合作。由于笔者水平有限,文中难免有所错误,希望读者朋友不吝赐教,欢迎斧正。(可在文末评论区说明或索要联系方式进一步沟通。)所属对象不同Java 是一门面向对象的语言,Java 中所有东西都是对象,对于
转载 2023-08-14 17:57:07
33阅读
sleepwait区别 :   1、这两个方法来自不同的类分别是,sleep来自Thread类,wait来自Object类。 sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用了b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。 2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控
原创 2012-11-27 20:15:11
549阅读
1点赞
sleep(100L)是表示让线程睡眠100毫秒,其他线程不会占用CPU资源,100毫秒之后会立即执行。而wait(100L)是进入线程池中让线程等待100毫秒,交出CPU资源,这100毫秒期间,该线程可以被其他线程notify,100毫秒之后不能保证立即执行,还要等待CPU分配资源,所以wait(100L)的执行时间是不确定的,但是至少是100毫秒。
原创 2014-11-08 18:10:06
455阅读
wait首先我们来看:1.wait是Object类的方法,也就是说,所有的对象都有wait方法2.Object中的wait方法被标为final,所以无法被重写,源码如下:public final native void wait(long timeout) throws InterruptedException;3.native关键字修饰,表示这个方法使用其他语言实现。4...
基本区别: 1、 sleep()来自Thread, wait() 来自Object2、sleep可以在任何地方使用wait只能在synchronized方法或者synchronized块中使用 (因为wait会释放锁,所有只有获取了锁,才会释放锁) 最主要的本质区别Thrad.sleep只会让出CP
转载 2019-12-28 21:25:00
74阅读
2评论
Java中的多线程是一种抢占式的机制,而不是分时机制。抢占式的机制是有多个线程处于可运行状态,但是只有一个线程在运行。 共同点 : 1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回。 2. wait()sleep()都可以通过interrupt()方法 打断线程的暂停状
转载 2017-06-08 16:56:00
132阅读
2评论
sleepwait区别  1、这两个方法来自不同的类分别是ThreadObject  2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使
原创 2023-04-28 17:05:57
78阅读
原创 2023-05-26 00:44:29
27阅读
Linux中的sleepwait是两个常用的命令,它们分别用于控制进程的暂停等待。虽然这两个命令在表面上看起来很相似,但实际上它们有着不同的功能用途。 首先,让我们来看看sleep命令。sleep命令用于在执行某个脚本或命令时暂停一段时间。该命令的语法如下: ``` sleep [s/m] ``` 其中,``表示要暂停的时间,单位可以是秒(s)或分钟(m)。比如,如果要暂停5秒钟,可以
wait()sleep()的区别
原创 2023-05-13 00:25:27
58阅读
java sleep wait 区别sleep是线程方法,wait是Object方法 sleep 不会释放锁, wait会释放锁 sleep不依赖同步方法,wait需要 sleep不需要被唤醒,wait(不给 long timeout 这个参数,则需要唤醒)需要sleep是线程方法,wait是Object方法 查看java api可以看出sleep 会释放锁, wait不会释放锁 新建 Test0
转载 2023-08-19 11:43:03
36阅读
from:http://nneverwei.javaeye.com/blog/494280http://zhidao.baidu.com/question/75503928.html?fr=ala01、这两个方法来自不同的类分别是,sleep来自Thread类,wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用了b的sleep方法,实际上还是a
转载 精选 2014-09-26 23:13:55
658阅读
2点赞
1评论
 sleepwait区别(考察的方向是是否会释放锁)1、sleep()方法是Thread类中方法,而wait()方法是Object类中的方法。 2、sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态,在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会
原创 2017-02-10 15:17:00
528阅读
wait()方法是Object类中的,sleep()是Thread类中;wait()会释放锁,使得其他线程可以使用同步代码块或047479
原创 2022-05-26 17:20:23
84阅读
类的不同:sleep() 来自 Thread,wait() 来自 Object。释放锁:sleep() 不释放锁(只是让出了CPU);wait() 释放锁。用法不同:sleep() 时间到会自动恢复;wait() 可以使用 notify()/notifyAll()直接唤醒,sleep()方法可以在任 ...
转载 2021-05-24 23:24:00
584阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5