问题标签 [busy-loop]

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.

0 投票
5 回答
5807 浏览

c# - 在 C# 中创建空闲循环的好方法?

我有一个应用程序,它设置了 FileSystemWatcher。它应该无限期地运行。

让它在空闲循环中运行的最佳方法是什么?

我目前在做

这似乎有效(即,捕获事件并且不会在繁忙的循环中耗尽核心)。

还有什么成语吗?这种方法有什么问题吗?

0 投票
2 回答
119 浏览

javascript - 如果代码很长,prettify 将导致“脚本忙”警告

我正在使用Google 的美化。怎么修?

0 投票
5 回答
6258 浏览

cuda - 摆脱异步 cuda 流执行期间的繁忙等待

我正在寻找一种方法来摆脱闲置代码中主机线程中的忙碌等待(不要复制该代码,它只显示了我的问题的一个想法,它有许多基本错误):

}

有没有办法让主机线程空闲并以某种方式等待某个流完成,然后准备并运行另一个流?

编辑:我在代码中添加了 while(true),以强调忙等待。现在我执行所有流,并检查它们中的哪一个完成了运行另一个新流。cudaStreamSynchronize等待特定流完成,但我想等待任何作为第一个完成工作的流。

EDIT2:我以休闲的方式摆脱了忙碌等待:

但它似乎比在主机线程上忙等待的版本慢一点。我认为这是因为,现在我在流上静态分配作业,所以当一个流完成工作时,它处于空闲状态,直到每个流完成工作。之前的版本动态地将工作分配到第一个空闲流,所以效率更高,但是在主机线程上有忙等待。

0 投票
5 回答
2333 浏览

cpu-usage - 为什么一个繁忙的循环会占用 100% 的 CPU?


为什么繁忙的循环通常会使用 100% 的 CPU 时间,而实现复杂算法的循环会使用更少的 CPU 时间?
谢谢 :)

0 投票
2 回答
2161 浏览

c++ - 忙循环与 Sleep(0) 和 pause 指令有什么不同?

我想等待我的应用程序中应该立即发生的事件,所以我不想让我的线程等待并稍后唤醒它。Sleep(0)我想知道使用和硬件暂停指令有什么区别。

我看不到以下程序的 cpu 利用率有任何差异。我的问题不是关于省电的考虑。

0 投票
6 回答
222 浏览

java - 为什么阻塞而不是循环?

编写以下代码被认为是不好的做法的一些原因是什么?

对我来说,选择一个任意值来休眠并不是一个好习惯,BlockingQueue在这种情况下我会使用 a ,但我想知道是否有多个不应该编写此类代码的原因。

0 投票
2 回答
2162 浏览

python - Python Threading.Event 半忙等待的更好解决方案

我正在使用非常标准的 Threading.Event:主线程到达一个循环运行的点:

其他阻塞请求,直到回复可用,然后启动:

我希望主线程选择 40 秒,但事实并非如此。来自 Python 2.7 源 Lib/threading.py:

我们得到的是每 500us 运行一次选择系统调用。这会在具有非常紧密的选择循环的机器上造成明显的负载。

有人可以解释为什么涉及平衡行为以及为什么它与等待文件描述符的线程不同。

其次,有没有更好的方法来实现一个大部分睡眠的主线程而没有如此紧密的循环?

0 投票
0 回答
186 浏览

assembly - 英特尔的 PAUSE 指令和可能的内存顺序违规

可能重复:
x86 中的暂停指令

英特尔的优化参考手册对自旋等待循环有以下说法:

3.4.1.2 自旋等待和空闲循环

Pentium 4 处理器引入了新的 PAUSE 指令;该指令在架构上是 Intel 64 和 IA-32 处理器实现上的 NOP。

对于 Pentium 4 和更高版本的处理器,该指令充当代码序列是自旋等待循环的提示。如果在此类循环中没有 PAUSE 指令,则 Pentium 4 处理器在退出循环时可能会遭受严重的惩罚,因为处理器可能会检测到可能的内存顺序违规。插入 PAUSE 指令可显着降低内存顺序违规的可能性,从而提高性能

我试图理解突出显示的部分:处理器可能检测到可能的内存顺序违规。你能解释一下这是什么意思吗?在什么情况下会在繁忙的循环中出现这种违规行为,为什么使用PAUSE帮助?违规行为是真实的还是虚假的,不避免的后果是什么?

一个说明问题的例子会很棒。

0 投票
1 回答
2339 浏览

c++ - 使用 boost::asio::io_service 运行避免繁忙循环

我正在使用 boost 实现一些 asio 操作,我遇到了一个接口问题,我在初始化时没有收到“处理程序”,但之后,

这迫使我编写一个“忙”循环,我想做的是让 io_service 运行,即使没有至少 1 个处理程序,这可能吗?有什么办法来处理这个?等待服务上的处理程序?这是我的代码..

有什么建议么?谢谢

这是代码问题:(m_drv 是一个操作 boost::thread(io_service::run..) 的任务)

0 投票
1 回答
405 浏览

zeromq - zeromq pub/sub 模式,监听器总是使用忙循环来检查消息?

我是新手ZeroMQ,我看过几个例子,似乎总是涉及到监听器做忙循环来接收消息,例如在pub/sub模式中。接收者需要这样做才能使用消息,

是否有任何类型的回调机制,例如接收者只会将自己注册到套接字,并且每当有消息时都会调用它,而不是忙于循环检查消息。