问题标签 [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.
multithreading - 忙等待和轮询有什么区别?
来自维基百科关于投票的文章
轮询,或轮询操作,在计算机科学中,是指客户端程序主动采样外部设备的状态作为同步活动。轮询最常用于输入/输出 (I/O),也称为轮询 I/O 或软件驱动 I/O。
轮询有时与忙等待轮询(忙等待)同义使用。在这种情况下,当需要 I/O 操作时,计算机只会检查 I/O 设备的状态,直到它准备好,此时设备被访问。换句话说,计算机一直等到设备准备好。
轮询还指反复检查设备是否准备就绪,如果不是,则计算机返回其他任务的情况。尽管不像忙等待那样浪费 CPU 周期,但这通常不如轮询、中断驱动的 I/O 的替代方案那么有效。
那么,当一个线程不使用“条件变量”时,是否会因为数据变化而被称为“轮询”或“忙于等待”呢?
java - 为什么 ScheduledExecutorService.shutdown() 使用 100% 的 CPU?
我有以下简单的代码:
实际上,虽然我的真实代码比这要复杂一些,但我可以在这些行中隔离问题。代码基本上是等待10秒运行runnable然后通知主程序结束。
但是,我注意到在 10 秒内,我的一个核心以 100% 的速度使用。
如果我评论这一行:
cpu 核心也以 100% 使用,并且主程序在 Runnable 之前完成。
如果我评论这一行:
cpu 使用正确,但程序无法完成。
如果我评论前两行,则 cpu 使用正确,但主程序不会完成。
- 我的代码有问题吗?
- 是
executor.shutdown();
在做某种忙碌的等待,而不是仅仅禁止提交新任务吗? - 或者我应该责怪JVM?
附加细节:
PS:请不要让我使用CountDownLatch
nor newSingleThreadScheduledExecutor
。这与我要问的问题无关。谢谢。
编辑:
这是java转储:
visual-c++ - Automation implementation using Busy Waiting or Threads in c++
I am trying to automate the handler equipment(a robot picks a chip and put it onto a hardware platform) with the following requirement:
1.There are 6 sites for the handler , once handler puts a device onto that site, handler will return an errorcode:
code1 for ready to test, code2 for error, and if in process no code have returned.
2.There is a master PC that controls the handler operation, and the communication b/w master and site PCs are using Staf
3.I need to use that code to run some tests(which already implemented and working properly). Handler puts the device in a FIFO order, first site returns code first, and last site returns code last.
4.The Site PC is acting passively, which master PC will determine when to run and how to run the tests. Site PC will only know if handler is ready then execute the tests.
So my question would be: In this case, for the site-PCs(Windows based with perl and .net enabled), is busy waiting method better or is the wait condition mechanism suits better:
For example: the sample code would be:
or is there any better way to do this kind of task?
Please advise, thanks
c# - 页面忙于asp.net时怎么办?
我有一个 asp.net Web 应用程序,当您单击一个按钮时,它会执行我所有的东西,但它很慢,需要 10 到 15 秒才能工作,而且我不希望用户在网站繁忙时点击该按钮的垃圾邮件。所以我的计划是禁用按钮并让它下面的标签变得忙碌并说“正在运行”,完成后按钮会重新激活并且标签会说“完成”但是这个按计划工作的是我的代码按钮监听器。
问题是所有的视觉效果都是在方法运行之后发生的,所以当它运行时没有任何改变,但是在它完成了文本字段显示之后。我也很高兴有一个忙碌的光标,但这是次要的。
javascript - 等待通过 ashx 处理程序在浏览器中加载 pdf 的图标
处理来自 ashx 处理程序调用的 pdf 响应。我在 C# 4.0 中有一个通用的 ashx 处理程序,它为我创建了一个 pdf。我通过构建发送到处理程序的 url 从浏览器中的 javascript 调用此处理程序。所以我最后一次获得pdf的电话是这样的:
我遇到的问题是,我只能旋转 gif 来告诉用户 pdf 正在烹饪并且很快就会准备好。我只是没有一个接入点,我可以说“报告正在工作,稍等片刻”。因为当那个电话回来时,它会尝试打开 pdf - 在我的浏览器中,它会显示要求您打开或保存 pdf 的框。
是否有另一种方法可以进行此调用,以便当 pdf 文档返回时,我可以执行一些代码以使 spinny 消失?
android - 等待对话框无法正常工作,应用程序冻结,直到任务结束
我有一门课可以发送各种带有附件的邮件。
因为该方法sendEmail(addresses);
需要时间来上传附件和发送电子邮件,所以我创建了一个 AsyncTask 来显示一个等待对话框,
然而,不幸的是,在发送过程中,应用程序会冻结,直到它终止发送而不显示任何内容(或者有时在程序结束前显示一个冻结的等待窗口片刻)
我的类中的相关代码部分如下
haskell - Haskell:在不进行轮询的情况下监控文件(在 linux 中使用 inotify)
是否有一个haskell 库函数可以在不轮询的情况下监控文件?
通过轮询,我会做这样的事情:
我想要的是一个阻塞的 getModificationTime ,它将被系统唤醒。有什么可用的吗?
如果它仅可用于 posix 系统,我会非常高兴,但越便携越好 :-)
编辑:我知道hinotify,但我在 Mac 上(这就是我提到 POSIX 的原因)。
python - 在睡眠循环上实现信号处理
我正在开发的应用程序中的一个模块旨在用作 Linux 上的长时间运行进程,我希望它能够优雅地处理 SIGTERM、SIGHUP 和可能的其他信号。程序的核心部分实际上是一个循环,它周期性地运行一个函数(这反过来又唤醒另一个线程,但这并不重要)。它或多或少看起来像这样:
我现在要添加的是捕获 SIGTERM 并退出循环,就像KeyboardInterrupt
异常一样。
我的一个想法是添加一个标志,该标志将由信号处理函数设置为 True ,并用 sleep(0.1) 或其他什么替换 sleep(60) ,并用一个计数秒的计数器:
和其他地方:
但我不确定这是最好/最有效的方法。
objective-c - 代码在部署后不起作用
我的应用程序的线程中有以下代码:
就绪变量从委托方法更改。当我通过单击 Xcode 工具栏中的“运行”按钮打开应用程序时,此代码运行良好。但是,如果我打开此应用程序的 .app(我通过单击产品 > 存档然后按照步骤创建),则此代码将不再起作用。
progressIndicatorController.value
永远不会增加,并且这个 if 语句永远不会计算为true
. 什么可能导致这个问题?
busy-waiting - 使用一对标志实现忙等待
我正在尝试使用 2 个标志来实现繁忙的等待机制。我遇到了僵局,但就是不明白为什么......在我看来它应该可以工作......
抱歉,代码很长,这是我成功完成的最短时间。