Java中Sleep和Wait的区别

目录

1、所属类不同

 2、作用不同

3、使用场景不同

4、异常处理不同

总结


在Java编程中,我们经常会遇到需要让线程暂停执行的情况。这时,我们可以使用Thread类的sleep()方法和Object类的wait()方法来实现线程的暂停。尽管它们都可以达到暂停线程的目的,但它们之间存在一些重要的区别。在本文中,我们将详细探讨Java中Sleep和Wait的区别。

1、所属类不同

Sleep方法是Thread类的一个静态方法,而Wait方法是Object类的一个实例方法。这意味着Sleep方法可以直接通过类名调用,而Wait方法需要通过对象实例调用。

// Sleep方法的使用
Thread.sleep(1000); // 暂停1秒// Wait方法的使用
synchronized (obj) {obj.wait(); // 暂停线程
}

 2、作用不同

Sleep方法用于让当前线程暂停执行指定的时间,然后自动恢复执行。它不会释放任何锁资源,也不会通知其他线程。

Wait方法用于让当前线程进入等待状态,直到其他线程调用该对象的notify()或notifyAll()方法唤醒它。在调用wait()方法时,线程会释放持有的锁资源,允许其他线程获取该锁并继续执行。

3、使用场景不同

由于Sleep方法不会释放锁资源,因此它通常用于简单的暂停操作,例如模拟延迟或者等待某个时间段后执行某个任务。

Wait方法则更适用于多线程间的协作和通信。当一个线程需要等待另一个线程完成某个操作时,可以使用wait()方法让当前线程进入等待状态,然后在合适的时机通过notify()或notifyAll()方法唤醒等待的线程。

4、异常处理不同

由于Sleep方法只是简单地让线程暂停执行,因此不需要进行异常处理。但是,Wait方法可能会抛出InterruptedException异常,因此需要在调用wait()方法时进行异常处理。

总结

虽然Java中的Sleep和Wait方法都可以实现线程的暂停,但它们在所属类、作用、使用场景和异常处理方面存在明显的区别。在实际开发中,我们需要根据具体的需求和场景选择合适的方法来控制线程的暂停和执行。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/512470.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux——自写一个简易的shell

目录 前言 一、打印提示信息 二、分割字符串 三、替换程序 前言 之前学习了很多进程相关的知识,包括环境变量、进程的创建与退出、进程等待、进程替换。现在可以用所学的作一个小总结,手撕一个shell解释器,大致的思路是先通过环境变量获…

Java对接快递100实时快递单号查询API接口

目录 1.引入依赖 2.定义配置信息 3.模块结构 4.Controller 5.Service实现类 6.返回数据dto以及dto中的数据dto 7.测试运行 今天也是接到了这个任务,官网有小demo,可以下载下来参考test中代码 官方文档地址: 实时快递查询接口技术文档…

docker的网络配置

文章目录 1、网络模式1.1、bridge模式(默认模式)1.2、host模式 2、bridge模式3、自定义网络 1、网络模式 Docker在创建容器时有四种网络模式:bridge/host/container/none,bridge为默认不需要用–net去指定,其他三种模式需要在创建容器时使用…

【QT】创建第一个QT程序

下面的前7个可以先不看,直接从8开始看 1. 创建Qt程序 一个Qt程序的组成部分:应用程序类,窗口类应用程序类个数:有且只有一个QApplication a;如何查看类对应的模块:光标移动到类上,F1qmake模块的名字 2. …

【易经】-- 伏羲八卦次序图

1、伏羲八卦次序图 ☷☶☵☴☳☲☱☰八卦坤艮坎巽震离兑乾四象太阴少阳少阴太阳两仪阴阳太极太极 2、八“单卦”(经卦) 符号卦名自然象征1☰乾qin天2☱兑du泽3☲离l火4☳震zhn雷5☴巽xn风6☵坎kǎn水7☶艮gn山8☷坤kūn地 3、八卦及所代表的意像

二,几何相交----2,区间相交检测IID

一,算法 对于空间的线段是否相交,假设都是与x平行,则需要三步 1,对各线段左右端点设置为L,R标志 2,从小到大进行排序 3,线性扫描,从小到大,根据模式判断是否相交,假设不相…

⭐每天一道leetcode:27.移除元素(简单;vector)

⭐今日份题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中…

录屏、截屏好工具

踩过的坑:用了win11之后,截屏工具就无法安装了,还有sqlcompare也无法安装了。 解决:关闭系统自带的安全机制“实时保护”,再重新安装工具。

shell脚本 条件语句

一、条件语句 1. test测试 test 测试文件的表达式 是否成立 格式1:test 条件表达式 格式2:[ 条件表达式 ] 注意[]空格,否则会失败 操作符: -d:测试是否为目录(Directory) -e:测…

3分钟开通GPT-4

AI从前年12月份到现在已经伴随我们一年多了,还有很多小伙伴不会开通,其实开通很简单,环境需要自己搞定,升级的话就需要一张visa卡,办理visa卡就可以直接升级chatgptPLSU 一、虚拟卡支付 这种方式的优点是操作简单&…

直播预告|从一张 CD 说起,关于播放器的前世今生

1877 年,天才发明家爱迪生研发出了人类历史上第一台可以录音和放音的装置,被称为“话筒”。 当时,这台机器使用一张薄薄的铁箔盘来录制声音,爱迪生亲手转动铁箔盘,在上面刻下声音的波纹。不过这个设计并不太实用&…

Swing程序设计(11)动作事件监听器,焦点事件监听器

文章目录 前言一、事件监听器是什么?二、详细展开 1.动作事件监听器2.焦点事件监听器总结 前言 如果你是坚持从Swing程序第一篇看到了这里,恭喜你,Swing程序设计简单地落下了帷幕,关于Swing程序更深的了解,可以自行学习…