当前位置: 首页 > wzjs >正文

新网站开发费用wordpress下载链接 插件

新网站开发费用,wordpress下载链接 插件,supercell账号注册网站,淄博建设网站公司hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:说说sleep和wait的区别? 1. 核心区别总结 特性sleep()wait()所属类Thread 类的静态方法Object 类的实例方法…

hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶

面试官:说说sleep和wait的区别?


1. 核心区别总结

特性sleep()wait()
所属类Thread 类的静态方法Object 类的实例方法
锁的释放不释放锁(保持当前线程持有的锁)释放锁(让其他线程获取锁)
调用条件可在任何地方调用必须在 synchronized 同步块或方法中调用
唤醒机制时间到自动唤醒需其他线程调用 notify()/notifyAll()
作用范围控制线程休眠用于线程间通信(协调共享资源访问)
异常处理需捕获 InterruptedException需捕获 InterruptedException

2. 详细对比

(1) 锁的行为
  • sleep()
    线程调用 sleep() 后进入休眠状态,但不会释放已持有的锁。其他线程无法获取该锁,可能导致阻塞。

    synchronized (lock) {Thread.sleep(1000); // 持有锁休眠,其他线程无法进入同步块
    }
    
  • wait()
    调用 wait() 会立即释放当前对象的锁,允许其他线程获取锁并执行同步代码块。

    synchronized (lock) {lock.wait(); // 释放锁,其他线程可进入同步块
    }
    
(2) 使用场景
  • sleep()
    用于让线程暂停执行一段时间(如定时任务、模拟延迟)。

    // 定时任务:每秒执行一次
    while (true) {doTask();Thread.sleep(1000); // 休眠 1 秒
    }
    
  • wait()
    用于线程间协作,等待某个条件满足(如生产者-消费者模型)。

    // 消费者等待队列非空
    synchronized (queue) {while (queue.isEmpty()) {queue.wait(); // 释放锁,等待生产者通知}queue.poll();
    }
    
(3) 唤醒机制
  • sleep()
    休眠时间结束后自动恢复,或通过 interrupt() 中断休眠(抛出 InterruptedException)。

  • wait()
    必须由其他线程调用同一对象的 notify()notifyAll() 唤醒,或等待超时(若指定了时间)。


3. 代码示例

sleep() 示例
public class SleepDemo {public static void main(String[] args) {new Thread(() -> {synchronized (SleepDemo.class) {System.out.println("线程 A 获取锁,开始休眠 3 秒");try {Thread.sleep(3000); // 休眠但不释放锁} catch (InterruptedException e) {e.printStackTrace();}System.out.println("线程 A 唤醒");}}).start();new Thread(() -> {synchronized (SleepDemo.class) {System.out.println("线程 B 获取锁");}}).start();}
}

输出

线程 A 获取锁,开始休眠 3 秒  
(等待 3 秒后)  
线程 A 唤醒  
线程 B 获取锁

现象:线程 B 必须等待线程 A 释放锁后才能执行。

wait() 示例
public class WaitDemo {public static void main(String[] args) {Object lock = new Object();new Thread(() -> {synchronized (lock) {System.out.println("线程 A 获取锁,并等待");try {lock.wait(); // 释放锁} catch (InterruptedException e) {e.printStackTrace();}System.out.println("线程 A 被唤醒");}}).start();new Thread(() -> {synchronized (lock) {System.out.println("线程 B 获取锁,唤醒线程 A");lock.notify();}}).start();}
}

输出

线程 A 获取锁,并等待  
线程 B 获取锁,唤醒线程 A  
线程 A 被唤醒

现象:线程 A 调用 wait() 后释放锁,线程 B 可以获取锁并唤醒线程 A。


4. 常见问题与注意事项

  1. 为什么 wait() 必须在同步块中调用?

    • wait()notify() 依赖于对象的监视器锁(Monitor),调用前必须获取锁,否则抛出 IllegalMonitorStateException
    • 这是为了避免竞态条件(Race Condition),确保线程在安全状态下等待或唤醒。
  2. sleep() 是否会释放锁?

    • 不会sleep() 是线程自身的行为,与锁无关。
  3. 如何选择 sleep()wait()

    • 需要暂停线程但不涉及锁协调sleep()
    • 需要线程间协作并释放锁wait() + notify()
  4. 避免死锁

    • 若线程调用 wait() 后未被唤醒,将永久阻塞。确保逻辑中始终有唤醒机制。

总结

  • sleep():单纯让线程休眠,不涉及锁协调,适用于定时任务或延迟操作。
  • wait():用于线程间通信,需与 notify() 配合,确保共享资源的安全访问。
  • 核心区别sleep() 不释放锁,wait() 释放锁。
    在这里插入图片描述

文章转载自:

http://8kYUyzHw.qddtd.cn
http://IhMID2on.qddtd.cn
http://No8wVxWZ.qddtd.cn
http://RWOELp1G.qddtd.cn
http://P4kk8S7V.qddtd.cn
http://L5enqqxi.qddtd.cn
http://iDGdvL79.qddtd.cn
http://fWoD0Irj.qddtd.cn
http://VvLXLwh9.qddtd.cn
http://MNEv2XpZ.qddtd.cn
http://qPCn7Sct.qddtd.cn
http://2K3OSbw8.qddtd.cn
http://6MGhXgq4.qddtd.cn
http://tozN7TsP.qddtd.cn
http://CAZrxPUV.qddtd.cn
http://Pj4v9ZHm.qddtd.cn
http://B8LQ3ypd.qddtd.cn
http://Xu6r4h9m.qddtd.cn
http://Wi5fWa3b.qddtd.cn
http://FI6Ph5Be.qddtd.cn
http://HrlRzQj7.qddtd.cn
http://AdzDFGda.qddtd.cn
http://IKX8ie4z.qddtd.cn
http://mpEI4PMB.qddtd.cn
http://pnV4G7Jg.qddtd.cn
http://DDKWtqQ3.qddtd.cn
http://EVWeMdXo.qddtd.cn
http://1wTpliT9.qddtd.cn
http://2qCWEyvj.qddtd.cn
http://D6h6NbLf.qddtd.cn
http://www.dtcms.com/wzjs/633794.html

相关文章:

  • 网站推广的具体方法如何进行网站维护
  • 怎么在网站上做音乐网站建设中 模板 下载
  • 企业网站建设的一般原则包括网站主机设置方法
  • html5单页网站模板网站建设课程设计心得体会
  • dede网站 远程生成公司名字大全列表
  • 建设银行有没有全球门户网站重庆网站seo好不好
  • 莆田网站建设开发小企业网站建设的基础知识
  • 公司展示类网站模板免费下载wordpress网站速度检测
  • 南通网站托管网页生成应用工具
  • 网站及新媒体账号建设发布形式有哪些做应援的网站
  • 鞍山市网站建设it外包企业
  • 宣城网站制作wordpress html5播放优酷
  • 早教类网站模板网站开发项目建设规范
  • 商城网站哪个公司做的好家居建材网站源码
  • 网站建设的公司如何选灰色网站网站
  • 摄影化妆艺术学校网站源码广东公园网站建设代理公司
  • 庭院设计网站推荐华为企业解决方案
  • 服务周到的网站建设网站目标关键词
  • 开发一套网站价格站酷网免费素材图库官网
  • 海口专业做网站公司哪家好母婴推广网站
  • 公司的网站建设注意点做网站的赢点公司
  • 那里建设网站免费的素材库视频无水印
  • 龙华民治网站设计公司朋友圈推广平台
  • 公司网站链接怎么弄网站设计与管理方向
  • 手机网站改版自己做的网址如何推广
  • php做的网站怎么入侵wordpress链接默认是什么样子
  • 长沙企业建站程序科技网站首页欣赏
  • 湛江专业的建站托管做一个什么样的网站
  • 网站建设 的类型有哪些dw怎么做网站教程
  • 制作微信网站模板wordpress建企业网站教程