`

sleep的程序怎么唤醒

    博客分类:
  • java
阅读更多
写道
wait/sleep的区别

Thread有一个sleep()静态方法,它也能使线程暂停一段时间。sleep与wait的不同点是:sleep并不释放锁,并且sleep的暂停和wait暂停是不一样的。obj.wait会使线程进入obj对象的等待集合中并等待唤醒。

但是wait()和sleep()都可以通过interrupt()方法打断线程的暂停状态,从而使线程立刻抛出InterruptedException。

如果线程A希望立即结束线程B,则可以对线程B对应的Thread实例调用interrupt方法。如果此刻线程B正在wait/sleep/join,则线程B会立刻抛出InterruptedException,在catch() {} 中直接return即可安全地结束线程。

需要注意的是,InterruptedException是线程自己从内部抛出的,并不是interrupt()方法抛出的。对某一线程调用interrupt()时,如果该线程正在执行普通的代码,那么该线程根本就不会抛出InterruptedException。但是,一旦该线程进入到wait()/sleep

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复 。调用sleep不会释放对象锁。
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方 法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

 interrupt,不错的选择,一般情况下,如果你选择了标志位控制循环线程,而且每次循环都sleep的话,如果你想立即关闭线程,用interrupt是个很好的选择

分享到:
评论

相关推荐

    基于STM32F103单片机SLEEP休眠模式的程序代码0010

    1、STM32F103通过设置SLEEP休眠模式,使单片机进入低功耗休眠状态,例程提供单片机进入SLEEP模式,并从SLEEP模式唤醒的操作。 2、代码使用KEIL开发,当前在STM32F103C8T6运行,如果是STM32F103其他型号芯片,依然...

    STM32通过RTC从休眠模式,定时唤醒。 主程序中,在当前时间,设置30S后RTC唤醒,然后就进入休眠状态。RTC在30S后自动唤醒,从头开始运行主程序。

    1. 主循环中,当sec达到15s时,设定15s后闹钟,然后进入...3. 注意:standby唤醒后,程序会重头开始执行, standby之后语句执行不到。 通过RTC设置系统进入待机模式,并定时唤醒,是一个非常省电而且非常可靠的方法。

    FT61F14 系列进入 SLEEP模式设置方法

    4. **处理中断**:在进入SLEEP模式前,需确保所有正在处理的中断已经完成,或者设置好中断处理程序,以便在唤醒时能正确响应。 5. **唤醒机制**:设置唤醒事件,如外部中断、定时器溢出等。这些事件一旦触发,...

    延时Sleep,timeGetTime完美结合占CUP少不假死源码

    这样,`Sleep`会在尽可能短的时间内唤醒线程,以减少CPU占用,同时保证总的延时时间不会少于预期。 通过这种方式,程序在等待期间不会消耗大量CPU资源,从而避免了“假死”现象。这种方法尤其适用于需要精确控制...

    STM32的待机唤醒程序,亲测可用

    5. **测试与验证**:实际应用中,待机唤醒程序需要经过充分的测试,以确保在不同条件下都能正确唤醒。这包括模拟各种可能的唤醒事件,验证唤醒后的系统状态是否正常,以及功耗是否符合预期。 实验16待机唤醒实验...

    Sleep_sleep_ThePoint_

    在编程领域,"Sleep"通常指的是程序中的暂停或延时功能。这个概念广泛应用于各种编程语言,例如C++,在本例中通过`Sleep.cpp`文件实现。`Sleep.cpp`是一个定义控制台应用程序入口点的源代码文件。在这个程序中,...

    sx1212唤醒程序5分钟唤醒

    3. **低功耗模式**:掌握SX1212的低功耗模式(例如:Sleep、Standby、FS和Tx/Rx),了解如何通过寄存器设置来切换这些模式,并实现定时唤醒。 4. **唤醒信号与定时器**:设计适当的唤醒机制,可以是外部信号触发,...

    Qt Windows 休眠唤醒信号

    当我们谈论“Qt Windows 休眠唤醒信号”时,我们主要关注的是如何在Windows操作系统进入休眠或唤醒状态时,Qt应用程序如何捕获和处理这些系统事件。 在Windows系统中,休眠是一种节能模式,它会将当前系统状态保存...

    Sleep_summerrqq_STM32F030低功耗程序_

    本文将深入探讨标题中的"Sleep_summerrqq_STM32F030低功耗程序",以及如何实现低功耗处理初始化和串口唤醒功能。 一、低功耗模式 STM32F030支持四种低功耗模式:STOP、STANDBY、SLEEP和WAIT。在这些模式下,处理器...

    java sleep()和wait()

    - **控制程序执行节奏**:比如在网络编程中,为了减少网络流量或者避免频繁请求服务器导致拒绝服务,可以通过`sleep()`来控制请求的发送频率。 - **简单延迟任务**:如定时任务等,可以通过`sleep()`实现简单的延迟...

    Python库 | big_sleep-0.0.1-py3-none-any.whl

    然而,"big_sleep"可能是对这一功能的扩展或优化,提供了更高级的控制选项,比如定时唤醒、异步睡眠、精确计时等功能。这将使得开发者在处理多线程、定时任务或者需要精确控制执行流程的应用中受益。 安装"big_...

    物联网项目实战开发之基于STM32的低功耗电源管理sleep睡眠模式测试 代码程序

    电源管理SLEEP睡眠模式: 1、 按键检测电路连接引脚PB1; 2、 下载程序后,用户LED闪烁3次后熄灭,说明CPU进入睡眠模式; 3、 按下按键(外部中断引脚PB1上产生一次下降沿),指示灯再次闪烁3次,说明CPU被唤醒; 4、 ...

    如何处理:SM12 用户登入不上WEB界面,表里头提示“SLEEP”.pdf

    5. 调用程序:ENQUE_SLEEP的正确调用和参数设置:ENQUE_SLEEP程序是一个预定义的程序,用于处理SAP中进程的休眠问题。在调用时,通常需要提供进程相关的ID和设定一个合理的超时时间。正确设置这些参数是成功唤醒进程...

    STM32F030的待机唤醒休眠模版

    3. 唤醒处理:当MCU被唤醒后,会跳转到预设的唤醒中断服务程序,进行必要的初始化操作和事件处理。 五、代码实现 在提供的压缩包中,"STM32F030的待机工程模版"应该包含了相关的C语言代码,包括初始化设置、待机...

    java 参赛者的比赛生活(线程休眠唤醒)

    在Java编程语言中,线程休眠和唤醒是多线程编程中的重要概念,它们用于控制线程的执行流程和优化资源利用。本主题聚焦于Java参赛者在比赛中如何运用这些技术来解决实际问题。 首先,让我们理解线程休眠(Thread....

    可隐藏的C++定时关机、定时唤醒程序

    标题中的“可隐藏的C++定时关机、定时唤醒程序”指的是使用C++编程语言编写的软件,该软件能够实现在计算机上设定特定时间自动关机或者唤醒计算机的功能,并且在运行过程中可以隐藏自身,避免用户直接看到或操作。...

    nosleep软件

    "Nosleep软件"是一款专为防止计算机自动休眠或待机设计的应用程序。这款软件的主要功能是让用户在需要保持电脑持续运行的情况下,避免系统进入节能模式。这在进行大型计算任务、在线会议、下载文件或者游戏过程中...

    深入理解Wait、Notify和Wait与sleep区别

    - **唤醒策略**:`wait()`可能唤醒单个或所有等待线程,而`sleep()`结束后自动唤醒自身。 在实际开发中,`wait()`, `notify()`和`notifyAll()`常用于实现生产者-消费者模型、哲学家就餐问题等经典并发问题。它们...

    Sleep

    在文件名称列表中只有一个名为“Sleep”的文件,这可能是一个关于如何进入或管理电脑睡眠模式的指南,或者是用于实现睡眠功能的软件程序。它可能包含如何设置睡眠选项、如何唤醒睡眠中的电脑,或者如何处理与睡眠...

Global site tag (gtag.js) - Google Analytics