使用sleep方法暂停一个线程

2023-05-16

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Pausing Execution with Sleep

使用sleep方法暂停一个线程 

Thread.sleep causes the current thread to suspend execution for a specified period. This is an efficient means of making processor time available to the other threads of an application or other applications that might be running on a computer system. The sleep method can also be used for pacing, as shown in the example that follows, and waiting for another thread with duties that are understood to have time requirements, as with the SimpleThreads example in a later section.使用Thread.sleep()方法可以暂停当前线程一段时间。这是一种使处理器时间可以被其他线程或者应用程序使用的有效方式。sleep()方法还可以用于调整线程执行节奏(见下面的例子)和等待其他有执行时间需求的线程(这个例子将在下一节演示)。

Two overloaded versions of sleep are provided: one that specifies the sleep time to the millisecond and one that specifies the sleep time to the nanosecond. However, these sleep times are not guaranteed to be precise, because they are limited by the facilities provided by the underlying OS. Also, the sleep period can be terminated by interrupts, as we'll see in a later section. In any case, you cannot assume that invoking sleep will suspend the thread for precisely the time period specified.在Thread中有两个不同的sleep()方法,一个使用毫秒表示休眠的时间,而另一个使用纳秒。由于操作系统的限制休眠时间并不能保证十分精确。休眠周期可以被interrupts所中断,我们将在后面看到这样的例子。不管在任何情况下,我们都不应该假定调用了sleep()方法就可以将一个线程暂停一个十分精确的时间周期。

The SleepMessages example uses sleep to print messages at four-second intervals:

SleepMessages程序为我们展示了使用sleep()方法每四秒打印一个信息的例子 

public class SleepMessages {
    public static void main(String args[])
        throws InterruptedException {
        String importantInfo[] = {
            "Mares eat oats",
            "Does eat oats",
            "Little lambs eat ivy",
            "A kid will eat ivy too"
        };

        for (int i = 0;
             i < importantInfo.length;
             i++) {
            //Pause for 4 seconds
            Thread.sleep(4000);
            //Print a message
            System.out.println(importantInfo[i]);
        }
    }
}

Notice that main declares that it throws InterruptedException. This is an exception that sleep throws when another thread interrupts the current thread while sleep is active. Since this application has not defined another thread to cause the interrupt, it doesn't bother to catch InterruptedException.  main()方法声明了它有可能抛出InterruptedException。当其他线程中断当前线程时,sleep()方法就会抛出该异常。由于这个应用程序并没有定义其他的线程,所以并不用关心如何处理该异常。

转载于:https://my.oschina.net/u/553266/blog/295098

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用sleep方法暂停一个线程 的相关文章

  • iOS 8 Bug - 当设备从睡眠状态返回时,OnUpdateReady 不再调用

    当运行 Web 应用程序 即从主屏幕上的快捷方式启动 的 iOS 8 设备从睡眠状态返回时 所有异步 Web 请求都无法触发 OnUpdateReady 回调 这个问题很容易重现 只需将下面的两个代码文件放在任何 Web 服务器上并尝试一下
  • Windows 命令中的“2>&1”有什么作用?

    对脚本进行一些维护 我发现了这一行 ping n 40 127 0 0 1 gt NUL 2 gt 1 I know 从这个问题 https stackoverflow com questions 1672338 how to sleep
  • 如何处理android中的睡眠模式进入?

    我在任何地方都没有找到它 我该如何处理在android中进入睡眠模式 当Android设备进入睡眠模式时我想做什么 这是可能的还是有办法处理它 只需使用 BroadCastReceivers 进行系统调用 唤醒 睡眠 即可实现此目的 And
  • Java线程睡眠与中断异常

    为什么睡眠线程需要 try catch 来捕获中断异常 为什么睡眠甚至会发出中断异常错误 这是我在java编程中真正想了解的两个问题 我一直在通过谷歌搜索 但仍然没有找到明确的解释来解释为什么会发生这两件事 An InterruptedEx
  • Python time.sleep() 与 event.wait()

    我想在我的多线程 Python 应用程序中定期执行一个操作 我见过两种不同的做法 exit False def thread func while not exit action time sleep DELAY or exit flag
  • Chrome 扩展程序桌面通知可在睡眠状态下运行

    我制作了一个桌面通知 它每 1 分钟显示一次通知 10 秒后 自动关闭 我去吃午饭 然后电脑就进入睡眠状态 当我回来时 我唤醒了我的电脑 然后开始出现很多通知 我该如何处理这个问题 我希望如果计算机睡眠 它不应该显示通知 我怎样才能控制它
  • powershell 鼠标移动不会阻止空闲模式

    System Windows Forms Cursor Position New Object System Drawing Point pos X pos Y 1 System Windows Forms Cursor Position
  • 减慢线程速度的最佳方法?使用 Sleep() 可以吗?

    我编写了一个 C 库 它执行一些非常繁重的 CPU 工作 所有数学和计算 如果留给它自己的设备 将很容易消耗 100 的所有可用 CPU 资源 它也是多线程的 以达到可用逻辑的数量 机器上的核心 因此 我在使用该库的软件应该调用的主计算循环
  • 如何在不连续重置的情况下将esp8266从深度睡眠中唤醒

    我正在使用 esp8266 构建 IR 到 wifi 桥接器 基本上 我正在构建一个连接到红外遥控器内的 esp8266 的红外接收器 以通过 wifi 将接收到的红外远程按键转发到服务器 我使用的是 Wemos D1 Mini 我已经让
  • 唤醒睡眠线程 - Interrupt() 与将睡眠“拆分”为多个睡眠

    这个要求出现在我的 Android 应用程序中 但它通常适用于 Java 我的应用程序每隔几秒钟就会 做一些事情 我的实现如下 只是相关片段 不是完整的代码 片段1 public class PeriodicTask private boo
  • Android手机休眠时网络访问

    我正在使用警报组合 设置为AlarmManager 和后台服务定期同步我的应用程序中的数据 我遇到的唯一问题是 当睡眠策略终止 Wi Fi 连接时 同步将不再起作用 有没有办法 唤醒 已进入睡眠状态的 Wi Fi 连接 GMail 以某种方
  • 在c中实现时间延迟

    我不知道如何准确地描述这个搜索 所以我没有运气找到任何东西 S 我需要在 C 中实现时间延迟 例如我想做一些事情 然后等一分钟 然后继续做事情 这有道理吗 谁能帮我吗 在标准 C C99 中 您可以使用time 为此 请执行以下操作 inc
  • 如何在运行时更改android中睡眠/定时器线程的延迟?

    我试图做的是每次计数器变为 5 的倍数时减少计时器延迟 但是 一旦代码进入 if 块 它就停止递增计时器 我不明白发生了什么事 这是代码 thread new Thread public void run try if count 5 0
  • 对象序列化__sleep

    php 手册指出 它可以清理物体并且是 应该返回一个数组 该对象的所有变量的名称 应该将其序列化 我的理解是 如果一个人上了一堂课 像这样 它只会序列化对象和属性
  • Javascript 中的同步睡眠函数

    我想使用 JS JQuery 模拟进度条 这是我的 HTML 代码 p 0 p 我想从 0 到 100 并以慢动作看到 视觉上的进度 所以我真正需要的是一个 For 循环和一个暂停函数 但不幸的是没有类似睡眠的函数Javascript 第一
  • 如何在 TypeScript 中实现睡眠功能?

    我正在使用 TypeScript 在 Angular 2 中开发一个网站 我想知道是否有办法实现thread sleep ms 功能 我的用例是在几秒钟后提交表单后重定向用户 这在 JavaScript 中非常简单 但我不确定如何在 Typ
  • Robot.delay(int) 与 Thread.sleep(long)

    我有一个程序 其唯一目的是驱动java awt Robot无限循环 直到满足退出条件 机器人快速连续执行多个动作 这需要它们之间有标准的 UI 延迟 为此 我使用java awt Robot setAutoDelay int ms 这似乎正
  • Python time.sleep - 永不醒来

    我认为这将是那些简单的问题之一 但它让我感到困惑 停止媒体 我是对的 找到了解决方案 查看答案 我正在使用 Python 的单元测试框架来测试多线程应用程序 很好而且很直接 我有 5 个左右的工作线程监视一个公共队列 以及一个为它们制作工作
  • 睡眠(挂起)和恢复窗口窗体在工作线程而不是主线程上启动程序

    我正在处理的 Windows 窗体订阅Microsoft Win32 SystemEvents PowerModeChanged and on Suspend它运行Close 表格上的方法 在Resume它运行Run 功能就像初始加载时一样
  • 在 Delphi 中编程延迟的最佳方法是什么?

    我正在开发的 Delphi 应用程序必须延迟一秒 有时甚至两秒 我想使用最佳实践来对此延迟进行编程 在阅读 stackoverflow 上有关 Delphi Sleep 方法的条目时 我发现了以下两条评论 我遵循这样的格言 如果你觉得需要使

随机推荐