问题标签 [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.

0 投票
1 回答
1006 浏览

python - 忙碌等待结构 Python 的替代方案

在我正在编写的程序中,我有一个小问题。我希望能够知道元素何时创建但无权访问元素的库。该库提供了一个函数,该函数在完成并准备好继续时返回 True 或 False。目前我正在使用一个繁忙的等待结构,例如:

这目前工作正常,但我想知道是否有更好/更简单/优雅的方式在 Python 中完成此任务。此外,如果库永远不会返回 true,它将以 1 秒的间隔永远旋转,这并不理想。

谢谢!

0 投票
3 回答
342 浏览

java - 在 notify() 之后做很多工作会导致 wait() 变得忙等待吗?

如果我有下面的代码

之后notify,我正在调用 sleep 这意味着,我已经通知了等待线程但没有放弃锁,现在会发生什么.. 通知等待线程之后会被唤醒但无法获取锁,所以从这里开始,是不是很忙?因为我们不会再打电话notify了。

同样的问题是,在一个线程被唤醒notifynotifyall获得锁之后,所有其他等待的线程是否都变成了忙等待?

0 投票
2 回答
835 浏览

c++ - 不会无限循环浪费cpu资源吗?

我打算为我的多线程应用程序使用boost::lockfree::queue 。一个boost 示例说明了无锁队列的消耗,如下所示:

我的问题是这部分:

我通常用于condition variable这种情况,但上述代码片段的简单性远比条件变量的复杂性更具诱惑力。

尽管consumer将有自己的线程,但它几乎在整个程序期间循环。我更担心,因为很多时候该//do something部分没有被调用(队列为空),并且可以给其他线程的大量CPU时间被这个线程浪费了。我对吗?这是一种常见的做法吗?

我需要有人告诉我我错了,我不应该因为这样的原因而担心这个。或建议我更好的方法。

谢谢

0 投票
1 回答
9503 浏览

java - 没有打印语句,循环看不到其他线程更改的值

在我的代码中,我有一个循环等待从不同的线程更改某些状态。另一个线程可以工作,但我的循环永远不会看到更改的值。它永远等待。但是,当我System.out.println在循环中添加一个语句时,它突然起作用了!为什么?


以下是我的代码示例:

当 while 循环运行时,我deliverPizza()从不同的线程调用来设置pizzaArrived变量。但是只有当我取消注释该System.out.println("waiting");语句时,循环才有效。这是怎么回事?

0 投票
1 回答
1028 浏览

runtime-error - 此页面上的脚本可能正忙 VS2010 ASP.net WebForm 中的错误

我在 VS 2010 中开发了一个网站,现在我想在 VS2013 中运行它,但是当我想使用 FireFox 从 VS 运行它时,会显示此错误。我的项目是 ASP.net webForm。

类似的错误出现在 Chrome、IE、...

有什么问题?我什至在网上搜索了这个网站,但无法修复错误。

0 投票
4 回答
2747 浏览

java - Wait for system time to continue application

I've written a class to continue a started JAVA application if the current second is a multiple of 5 (i.e. Calender.SECOND % 5 == 0)

The class code is presented below, what I'm curious about is, am I doing this the right way? It doesn't seem like an elegant solution, blocking the execution like this and getting the instance over and over.

Synchronizer.timeInSync() is called in another class's constructor and an instance of that class is created at the start of the main method. Then the application runs forever with a TimerTask that's called every 5 seconds.

Is there a cleaner solution for synchronizing the time?

Update:

I think I did not clearly stated but what I'm looking for here is to synchronization with the system time without doing busy waiting.

So I need to be able to get

0 投票
1 回答
1782 浏览

c++ - 使用 boost::asio poll 避免忙等待

我正在linux上编写一个服务,它在while循环中使用boost::asio::io_service和io_service::poll。这是一个繁忙的等待循环,例如它会浪费 CPU 周期。

我使用 poll 而不是 run 来检查服务中的另一个线程是否已发出服务关闭的信号。

有没有办法在繁忙的等待循环中不使用 poll 来实现这一点?

该服务在单个线程上使用异步 io,其他线程进行数据处理。

我在循环的迭代之间添加了一个睡眠,这似乎减少了 CPU 时间的浪费,但我希望可能有更有效的方法?

0 投票
2 回答
907 浏览

asp.net - Asp.net 在刷新页面时显示等待指示器 (F5)

我使用此页面中的示例,它适用于提交案例。

http://www.aspsnippets.com/Articles/Display-loading-image-while-PostBack-calls-in-ASPNet.aspx

但是当用户刷新页面(通过浏览器或 F5 按钮刷新)时,此指示器不显示。我尝试使用卸载/加载事件,但它不起作用。有没有人有任何想法?

提前致谢!

0 投票
1 回答
3563 浏览

python - time.sleep 的替代方案

简介:众所周知,准确度time.sleep取决于操作系统和计算负载。Windows 中的准确性非常差。

/questions/17499837类似,方法可以使用该time.clock方法作为time.sleep. 这种方法会产生不必要的负载,影响系统中的其他模块。在进行模拟时这是不可取的。

为了减少忙于等待而不依赖于 的时间量time.sleep,一个类使用了该方法select.select并利用了 timeout 属性。请参见下面的代码:

环境:我正在使用 PortablePython2.7.6.1

问题:当代码在 PyScripter 或在后台打开 PyScripter 的命令行中执行时,上面的脚本执行得非常准确。一旦 PyScripter 关闭,方法 sleep 就会变得不准确。我知道超时select.select应该是不准确的,time.sleep但在所有情况下,都不是如上所述。

结果:

没有在后台运行 PyScripter

PyScripter 在后台运行

0 投票
2 回答
322 浏览

c++ - C++ win32 以固定时间步长打印到控制台

我正在尝试创建一个函数,该函数允许我输入所需的每秒帧数和最大帧数,然后在固定的时间步长上将函数“cout”发送到控制台。我也在使用 Sleep() 来避免忙于等待。我似乎让程序的睡眠时间比它需要的时间长,因为它一直在我认为的睡眠命令上停滞不前。你能帮我解决这个问题吗?我在理解时间方面遇到了一些麻烦,尤其是在 Windows 上。

最终我可能会使用这种计时方法来计时和动画一个简单的游戏,比如乒乓球,甚至是一个带有可以加速的对象的简单程序。我想我已经了解 GDI 和 wasapi 足以在屏幕上播放声音和显示颜色,所以现在我需要了解时间。在网上问这个问题之前,我已经找了很长时间,我确信我遗漏了一些东西,但我不能完全理解它:(这里是代码: