问题标签 [busy-waiting]
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.
c++ - 等待条件的空循环(忙等待)
在过去的 20 分钟里,我一直在研究空循环,其目的只是等待条件变为真。
我有一个名为“waitForLoaded”的函数,它是由 CreateThread 创建的线程。
功能:
我使用 Sleep(500) 在 CPU 上很容易,因为我相信使用 0 或 1 会耗尽处理器。
我在很多人中看到过使用“睡眠(0)”的代码,但我不明白为什么不只是不睡觉,而是做“while(condition){} ..”
我找不到任何关于哪个对 CPU 更友好的可靠答案,所以我在这里问人们,忙等待与 0 毫秒、1 毫秒或 500 毫秒有什么区别,哪个对 CPU 更友好。
在我看来,最好至少睡半场,这几乎不会被用户注意到。
java - Java 线程忙等待
嗨,我正在做一个项目,但我已经到了一个非常困难的地方。我试图寻找方法来学习如何为繁忙的等待编写 while 循环,但我没有找到任何东西,我的代码只是作为无限循环运行。有人可以帮我解释一下繁忙的等待循环应该如何工作并帮助我摆脱这个无限循环吗?
该项目希望发生以下情况:早上,学生醒来后(需要随机时间),他将前往洗手间为新的上学日做准备。如果卫生间已经被占用,学生会休息一下(使用 yield()),稍后他将等待(使用忙等待)等待卫生间可用。学生将按照先到先得的原则使用浴室(您可以使用布尔数组/向量让它们按顺序释放)。
这是我的主要方法,它允许用户指定他们想要多少个学生线程。是的,我不明白如何实现值的更改,以便可以打破繁忙的等待循环。
c# - 控制不显示繁重的过程
我在winform中使用c#。
在一个很重的函数之前,我想显示一个等待表单来阻止用户。窗体打开,但其中的控件未绘制。
在下面的代码中,waitingForm 是一个小表单,只有一个文本框和一个进度条
我只看到两个白色矩形,控件应该出现在其中。为什么会这样?
python - 函数之间的 Python 信号以消除繁忙的等待
我只是想在 Python 中实现一个简单的观察者模式并且遇到了一个问题。这是我的代码:
在这里,我想消除 Observer.wait() 中的忙碌等待(行 time.sleep(5)。我怎样才能向这个函数发出信号?
java - 使用 JProfiler,是否有推荐的策略来确定应用程序是 CPU 还是网络绑定?
标题提出了问题的症结所在。此外,如果 JProfiler 中有一些漂亮的图形可以说明慢速应用程序是 CPU、内存还是网络绑定,那么我也想知道这一点。
我怀疑 RTFM 会有所帮助,但它是 TL;DR。但是,我正在运行 JProfiler 并试图偶然发现解决方案。
我可以看到正在测量的应用程序的线程活动,是的,一些工作线程偶尔会出现网络 I/O 空闲的蓝色跨度——但这不足以解释应用程序在表演中。
那么,除了在 CPU 上运行的代码的热点统计信息之外,有没有办法查看 CPU 时间与整体挂钟时间及其与网络和内存使用时间的关系如何?
android - 如何在通话过程中获取新来电的呼叫等待状态
我正在使用一个 android 应用程序来读取来电的电话状态。我已经成功地捕捉到了振铃、摘机和空闲状态。但问题是我需要获取新来电的呼叫等待状态。当我试图捕捉新呼叫的状态时,它总是为应答和挂断提供相同的状态OFFHOOK。有什么方法可以区分场景吗??
lua - 为什么我的尾调用函数不暂停和刷新输出?
我查看了lua-users Sleep Function参考,试图找到解决睡眠问题的非忙等待解决方案,但我对其中任何一个都不满意。尽管如此,我还是尝试使用几个来在使用尾调用的函数结束时提供延迟。
通常我不会使用尾调用,但由于 lua 不会为尾调用留下堆栈,所以它适合我。
不幸的是,我看到我的处理器使用率飙升至大约 20%,并且程序一旦开始就立即变得无响应,而没有任何输出刷新。
问题(简化)如下所示:
我已经尝试过套接字选择方法,os.execute,当然还有忙等待。其中只有忙碌的等待给出了预期的行为。
这些其他非忙等待解决方案也是非阻塞的吗?也就是说,尽管有延迟,他们是否允许处理尾调用?
如何刷新输出并让函数在恢复之前等待 10 秒而不忙于等待?
java - 忙等待不一致吗?
我想要一个特定时间的繁忙等待循环,我测试了以下 java 代码,它在不同的运行(有时)上给出不同的输出。大多数时候它给出 16 和 0。这意味着一个人不能相信忙碌的等待。是什么原因?
java - 为什么小于15ms的busy-wait不一致?
我正在做模拟项目,我有数百个 CPU 密集型作业运行 10 到 50 毫秒。Job 是一个 Runnable 对象,具有指定的运行时间,作业将使 CPU 保持忙碌。有 10 个线程在线程池中等待作业到达。我将请求速率设置为每秒 40 个请求,所有作业的运行时间设置为 10 毫秒。但结果太可怕了。所有作业至少运行 15 毫秒。没有运行 10 毫秒的作业。我用 15ms 的工作测试了实验,我得到了正确的结果。为什么 10 毫秒的作业至少运行 15 毫秒?(我使用的是 WINDOWS8)。
events - Clojure - 等待文件更改
我有两个文件,都是 1 字节大(仅包含“1”或“0”)。
现在在用 Clojure 编写的程序的主循环中,我想等到其中一个文件发生更改后再继续。这可以通过忙碌等待来完成,使用 slurp 轮询文件以进行更改。但这是对资源的浪费。
我怎么能不忙着等待呢?