sleep和wait的区别

原创 2015年11月20日 20:29:43

sleep和wait有什么区别?

    

对时间的指定。
1,sleep方法必须指定时间。
2,wait方法有重载形式,可以指定时间,也可以不指定时间。


对于执行权和锁的操作.:
1,sleep():释放执行权,不释放锁,因为肯定能醒,肯定可以恢复到临时阻塞状态。
2,wait():释放执行权,释放锁,因为wait不释放锁,如果没有时间指定,那么其他线程都进行不了同步中,无法将其唤醒。


记住:同步中可以有多个存活的线程,但是只能有一个执行同步的代码。因为只有一个线程会持有同步的锁。


只有当该线程释放了锁,其他线程才会有机会获取到锁,而且只能用一个线程获取到锁,继续执行。


      补充:

       1、这两个方法来自不同的类分别是Thread和Object
  2、最主要是sleep方法没有释放锁,而 wait 方法释放了锁,使得其他线程可以使用同步控制块或者方法。
  3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围)
  synchronized(x){
       x.notify()
       //或者wait()
  }
  4、sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常
  扩充阅读:
  java 线程中的sleep和wait有一个共同作用,停止当前线程任务运行。

版权声明:本文为博主原创文章,未经博主允许不得转载,转载请注明出处,谢谢!

Java常见面试题

1、这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。 sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用了b的sleep方法,实际上还...
  • shineflowers
  • shineflowers
  • 2014年10月13日 16:41
  • 44928

浅谈sleep方法和wait方法的异同

浅谈sleep方法和wait方法的异同     在我学到多线程技术这里时,感到sleep方法和wait方法二者给我造成了一些困惑,所以我在此将二者小小地总结 一下,希望对大家有所帮助。   ...
  • u013035237
  • u013035237
  • 2015年04月06日 19:52
  • 2964

sleep和wait区别

1、sleep()方法     sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会;     s...
  • paincupid
  • paincupid
  • 2015年08月11日 12:06
  • 2085

sleep和wait有什么区别

1、这两个方法来自不同的类分别是Thread和Object   2、最主要是sleep方法没有释放锁,而 wait 方法释放了锁,使得其他线程可以使用同步控制块或者方法。   3、wait...
  • xusongsong520
  • xusongsong520
  • 2013年02月22日 13:50
  • 12865

java 中的 wait()方法和 sleep()方法的区别

sleep()和wait()的区别 Java中的多线程是一种抢占式的机制而不是分时机制。线程主要有以下几种状态:可运行,运行,阻塞,死亡。抢占式机制指的是有多个线程处于可运行状态,但是只...
  • liuguangqiang
  • liuguangqiang
  • 2015年10月16日 16:23
  • 7695

线程中sleep()和wait()的区别

Java中的多线程是一种抢占式的机制,而不是分时机制。抢占式的机制是有多个线程处于可运行状态,但是实际运行过程中,只有一个线程可以优先运行。 共同点:  1、他们都是在多线程的环境下,都可以在程序...
  • u014704415
  • u014704415
  • 2016年06月08日 10:58
  • 2662

java 中的sleep()和wait() 等的区别和详解

1、sleep()  使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该...
  • u011974987
  • u011974987
  • 2016年11月08日 22:48
  • 1758

sleep函数的精度 不精确

Qt 线程暂停使用sleep 是本文要介绍的内容,关于sleep函数,我们先来看一下他的作用:sleep函数是使调用sleep函数的线程休眠,线程主动放弃时间片。当经过指定的时间间隔后,再启动线程,继...
  • zhangbinsijifeng
  • zhangbinsijifeng
  • 2016年05月12日 10:50
  • 1092

sleep和wait有什么区别

1、这两个方法来自不同的类分别是Thread和Object   2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。   3、wait,notif...
  • u010866487
  • u010866487
  • 2014年06月12日 18:28
  • 1404

面试总结(3):线程(Thread)的同步以及sleep() 、wait()的区别

前言这几天忙一点私事,今天回来赶紧把面试总结接着写下去,这次来看看Thread的join()方法和sleep()和wait()方法的区别。正文 线程同步上一篇提到了线程同步的问题,主要是通过锁的形式来...
  • u011315960
  • u011315960
  • 2017年04月24日 14:46
  • 462
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sleep和wait的区别
举报原因:
原因补充:

(最多只允许输入30个字)