问题标签 [sleep]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java 中的 Timer & TimerTask 与 Thread + sleep
我在这里发现了类似的问题,但没有令我满意的答案。所以再次改写这个问题——
我有一项需要定期完成的任务(比如 1 分钟间隔)。与创建具有无限循环睡眠的新线程相比,使用 Timertask 和 Timer 执行此操作有什么优势?
使用 timertask 的代码片段-
使用 Thread 和 sleep- 的代码片段
如果逻辑的执行花费的时间超过间隔时间,我真的不必担心如果我错过了某些周期。
请对此发表评论。。
更新:
最近我发现使用 Timer 与 Thread.sleep() 之间的另一个区别。假设当前系统时间是上午 11:00。如果我们出于某种原因将系统时间回滚到上午 10:00,Timer 将停止执行任务,直到它到达上午 11:00,而 Thread.sleep() 方法将继续执行任务而不受阻碍。这可能是决定在这两者之间使用什么的主要决策者。
iphone - 睡眠功能的替代品
我在我的应用程序中实现了以下功能。
这sleep
是一个带有unsigned int
类型参数的函数。
睡眠方法使用秒来睡眠。
我想以毫秒为单位给出睡眠时间。
有哪个最好的替代品可用?
iphone - for 循环执行不允许在 iPhone 上进行触摸
行。我知道标题可能令人困惑。
我实现的逻辑是这样的。
- 应用中有一个检测器(如自行车速度计 - 移动箭头)
- 当用户点击开始扫描按钮时 - 第一个方法执行。
- NowStartMovements 决定随机旋转和随机数停止
- 检测器上有 1 到 10 个数字。
- 到目前为止,一切都很好。
- 以下代码没有错误。
箭头完美移动并停在适当位置(随机决定)
但问题是“我已经为动作实现了 for 循环”
- 因此,在执行 for 循环时,不会启用用户交互。
我还添加了我已经实现的代码。
cocoa - 不使用 cpu 电源的 Cocoa Lock
当我尝试锁定它并且它被锁定在其他地方时,我需要一个不使用一个 cpu 的可可锁。在内核调度程序中实现的东西。
java - 调用 Thread.sleep() 时子进程停止(在 Windows 下的 Java 中)
我有一个使用 ProcessBuilder 启动外部进程 (Internet Explorer) 的 Java 应用程序。奇怪的是,当父 Java 线程调用 Thread.sleep 时,这个子进程会冻结。并非所有进程都会发生这种情况,例如 Firefox,但 IE 会一直发生。
有任何想法吗 ?
PS 我试过 Robot.delay() 具有相同的效果
java - scheduleExecutorService.scheduleAtFixedRate() 方法如何确保实时执行?
因为我每秒都在执行一个时间紧迫的任务,所以我比较了几种方法,以找到确保我的任务真正以固定时间步长执行的最佳方法。在计算所有方法的误差的标准推导之后,似乎使用该方法scheduledExecutorService.scheduleAtFixedRate()
会导致最好的结果,但我不知道为什么会这样。
有人知道这种方法在内部是如何工作的吗?例如,与简单的sleep()
确保引用的任务真正以固定时间步长执行相比,它如何?
c# - 没有 Thread.Sleep 的共享对象池?
我已经开发了一个“对象池”,如果不使用 Thread.Sleep() 似乎无法做到这一点,我认为这是“不好的做法”。
这与我的另一个问题“是否有在.net 中实现专有连接池的标准方法? ”有关。对象池背后的想法类似于用于数据库连接的连接池背后的想法。但是,就我而言,我使用它来共享标准 ASP.NET Web 服务(在 IIS6 中运行)中的有限资源。这意味着许多线程将请求访问此有限资源。池将抛出这些对象(“获取”),一旦所有可用的池对象都被使用,下一个请求的线程将简单地等待一段时间,以使这些对象中的一个再次可用(线程会这样做一次“放置”对象)。如果对象在此设定时间内不可用,则会发生超时错误。
这是代码:
要使用它,可以执行以下操作:
现在我的问题是:我该如何写才能摆脱 Thread.Sleep()?
(我为什么要这样做是因为我怀疑它是导致我在测试中遇到的“错误”超时的原因。我的测试应用程序有一个对象池,其中包含 3 个对象。它启动 12 个线程,每个线程得到从池中获取对象 100 次。如果线程从池中获取对象,它将保持 if 2,000 毫秒,如果没有,则进入下一次迭代。现在逻辑表明 9 个线程将等待对象在任何时间点。9 x 2,000 毫秒是 18,000 毫秒,这是任何线程应该等待对象的最长时间。我的获取超时设置为 60,000 毫秒,因此任何线程都不应该超时。但是有些这样做是错了,我怀疑它是 Thread.Sleep)
c - 是否可以在 select() 的无限循环中使用 nanosleep?
我有一个C程序,它使用for(;;)
循环和 aselect()
来监视文件描述符从/到套接字执行接收/发送操作。我还需要这个程序每 80 毫秒向一个数据包发送一个数据包,我该如何实现呢?也许我可以使用 a并且子进程只需在每 80 毫秒fork()
监视的文件描述符之一中写入一个 ack 。select()
有更好的解决方案吗?
iphone - 您可以在应用程序中打开和关闭 idleTimerDisabled 布尔值吗?
例如,我有一个带有菜单屏幕的游戏,然后我有游戏本身。我希望在玩游戏时禁用计时器,但在菜单屏幕中启用计时器。我目前在我的应用程序委托中有以下代码禁用计时器:
任何帮助,将不胜感激。
winapi - 为什么 SetThreadExecutionState(ES_SYSTEM_REQUIRED) 会阻止显示器断电?
我试图让系统保持开启,同时让显示器关闭,以便在系统无人看管的情况下完成下载。为了实现这一点,我呼吁:
每当我从下载中获取数据时。但是,这似乎也可以防止显示器断电(显示器根据其配置的调光计时器变暗,但永远不会完全关闭)。根据MSDN 条目,只有当我也通过时才会发生这种情况ES_DISPLAY_REQUIRED
- 为什么它仍然被阻止?
请注意,当我停止呼叫时SetThreadExecutionState
,显示器不会再次开始断电;我必须终止程序才能关闭显示器。但是,如果用 调用它不应该只有持久效果ES_CONTINUOUS
吗?
如果重要的话,我正在使用 Windows 7。我目前无法在其他版本上进行测试...