首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java中sleep和wait的方法区别

java中sleep和wait的方法区别

作者头像
知识浅谈
发布于 2022-05-19 05:09:57
发布于 2022-05-19 05:09:57
5790
举报
文章被收录于专栏:分享学习分享学习

区别

  1. 所属对象不同:sleep方法属于Thread类的,wait方法属于object对象的。
  2. 唤醒方式不同:interrupt()方法可以终端 sleep 和wait方法。notify和ntifyall方法可以唤醒wait方法的暂停,sleep可以设置指定的时间后唤醒。
  3. 使用地方不同:sleep方法可以使用在非同步方法中,wait方法必须使用在同步代码块中。
  4. 方法属性不同:wait是实例方法,而sleep是Thread 的静态方法。
  5. 锁资源占用情况不同:wait会释放对象锁,而sleep不会释放对象锁。

知识点补充

线程的六大状态:

1)六大状态概述: NEW:线程刚创建 RUNNABLE:在JVM中正在运行的线程 BLOCKED:线程处于阻塞状态,等待监视锁,可以重新进行同步代码块中执行 WAITING:等待状态 TIMED_WAITING:调用sleep() join() wait()方法可能导致线程处于等待状态 TERMINATED:线程执行完毕,已经退出 2)六大状态图:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
wait()和sleep()的区别
需要注意的是,在使用wait()和notify()时,必须在同步代码块或同步方法中调用,以确保正确的对象锁的释放和获取。
奇门水镜
2023/05/19
6400
java中awit和sleep的区别和线程安全性问题
在 Java 中,wait() 和 sleep() 都是让线程进入阻塞状态的方法,但是它们的用途、行为和线程安全性有所不同。下面详细解释这两个方法的区别以及它们在线程安全性方面的影响。
用户3672714
2025/07/17
770
【高薪程序员必看】万字长文拆解Java并发编程!(3-2):并发共享问题的解决与分析
它们都是之间协作的手段,只有拥有对象锁的线程才能调用这些方法,否则会出现IllegalMonitorStateException异常
摘星.
2025/05/20
500
【高薪程序员必看】万字长文拆解Java并发编程!(3-2):并发共享问题的解决与分析
java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?
在Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity。所有对象的非同步方法都能够在任意时刻被任意线程调用,此时不需要考虑加锁的问题。而对于对象的同步方法来说,在任意时刻有且仅有一个拥有该对象独占锁的线程能够调用它们。例如,一个同步方法是独占的。如果在线程调用某一对象的同步方法时,对象的独占锁被其他线程拥有,那么当前线程将处于阻塞状态,并添加到对象的入口队列中。
bear_fish
2018/09/20
1.9K0
Java并发编程之wait、notify和join原理
使用while循环去循环判断一个条件,而不是使用if只判断一次条件;即wait()要在while循环中
Java微观世界
2025/01/21
1290
Java并发编程之wait、notify和join原理
Java多线程wait()和notify()方法图解
wait()和notify()是Object类的方法,用于线程的等待与唤醒,必须搭配synchronized 锁来使用。
VIBE
2022/11/18
5450
Java多线程wait()和notify()方法图解
Java中sleep()和wait()方法的区别
在Java编程中,sleep()和wait()都是用于线程的控制和调度的方法。然而,它们之间有着重要的区别。本文将详细介绍Java中sleep()和wait()方法的区别,帮助读者更好地理解和正确使用这两种方法。
网络技术联盟站
2023/09/04
1.6K0
Java中sleep()和wait()方法的区别
多线程有哪些状态?
多线程有六种状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED。
keying
2023/02/28
5860
多线程有哪些状态?
【Java多线程】wait方法和notify方法
wait要搭配synchronized来使⽤.脱离synchronized使⽤wait会直接抛出异常.
用户11369558
2024/11/20
1360
【Java多线程】wait方法和notify方法
一张图搞清楚wait、sleep、join、yield四者区别,面试官直接被征服!
在线程的生命周期中,不同状态之间切换时,可以通过调用sleep()、wait()、join()、yield()等方法进行线程状态控制,针对这一部分知识点,面试官们也会做做文章,比如问你这些方法的作用以及之间的区别。
JavaBuild
2024/05/27
1.8K0
一张图搞清楚wait、sleep、join、yield四者区别,面试官直接被征服!
java多线程之六种状态
其中,RUNNABLE状态包括 【运行中】 和 【就绪】; BLOCKED(阻塞态)状态只有在【等待进入synchronized方法(块)】和 【其他Thread调用notify()或notifyAll(),但是还未获得锁】才会进入;
用户9854323
2022/06/25
3220
面试官提问:线程中的wait和notify方法有啥作用?
在之前的线程系列文章中,我们介绍了synchronized和volatile关键字,使用它能解决线程同步的问题,但是它们无法解决线程之间协调和通信的问题。
Java极客技术
2023/10/13
2930
面试官提问:线程中的wait和notify方法有啥作用?
Java线程状态(生命周期)以及线程状态转换详解
线程状态转换进入等待/超时等待进入等待状态进入超时等待LockSupport类简介过期的suspend和resume方法
用户7886150
2021/04/20
7370
Java中sleep和wait的区别
2、sleep方法使当前线程暂停执行指定的时间,让出cpu给其他线程,但是它的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。在调用sleep方法后,线程不会释放对象锁;
编程大道
2019/08/26
3.4K0
synchronized关键字 Krains 2020-08-25
synchronized实际是用对象锁保证了临界区内代码的原子性(临界区就是多个线程对共享资源读写操作的代码块),临界区内的代码对外是不可分割的,不会因线程切换所打断。
Krains
2020/09/10
3490
synchronized关键字  Krains 2020-08-25
java多线程编程核心技术——第三章总结
用户1134788
2018/01/05
8320
java多线程编程核心技术——第三章总结
(十二)yield、notify、notifyAll、sleep、join、wait(三)
Object.wait(long)要跟Object.notify()/notifyAll()搭配使用。
HaC
2020/12/30
8340
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
在前面的几篇博客里,我们学习了Java的多线程,包括线程的作用、创建方式、重要性等,那么今天我们就要正式踏入线程,去学习更加深层次的知识点了。
JavaBuild
2024/05/27
1220
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
Android并发编程 多线程与锁
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,如果能给各位看官带来一丝启发或者帮助,那真是极好的。
LoveWFan
2018/11/30
9310
sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇(十四)
Object中的wait、notify、notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等待集逻辑
noteless
2019/03/11
1.8K0
sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇(十四)
推荐阅读
相关推荐
wait()和sleep()的区别
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档