草庐IT

sleep_durations

全部标签

java - 主线程的 sleep 抛出 InterruptedException

我有生成新线程的主执行线程。在main()的主执行线程中,我调用了Thread.sleep()。我什么时候会收到类型为InterruptedException的未处理的异常?。我不确定为什么会收到这个。我认为这是因为我需要对主线程的引用,所以我继续通过Thread.currentThread()对其进行引用。这不是让线程hibernate的方法吗?我需要做的是让主线程等待/sleep/延迟,直到它再次需要工作。 最佳答案 您看到的是一个编译错误,因为您没有正确处理已检查的异常(在本例中为InterruptedException)。处

java - Duration中的 'PT'前缀代表什么?

我正在尝试使用Duration类而不是long。它具有优越的文字语法。我喜欢它的灵active,尽管它看起来很奇怪。“PT10S”表示10秒,接受“10秒”有什么问题?!好吧没关系。我很好奇为什么选择了PT前缀(例如不是“DU”)以及为什么这里有前缀比没有前缀更好? 最佳答案 可以在Jesper链接到(ISO-8601-Dataelementsandinterchangeformats–Informationinterchange–Representationofdatesandtimes)的页面上找到Pisthedurationd

Java 线程 sleep 和中断异常

为什么sleep线程需要trycatch来捕获中断的异常?为什么sleep甚至会发出中断异常错误?这是我真正想在Java编程中找出的两个问题我一直在通过谷歌搜索,但我仍然没有找到明确的解释来解释为什么会发生这两件事。 最佳答案 InterruptedException当线程被阻塞/等待并且被另一个线程中断时抛出(通过Thread.interrupt)。将其视为立即终止的请求,不会遭受Thread.stop()的缺点。这样,即使您指示一个线程hibernate数年,您也可以中断该线程。Therecommendedpractice当抛出

java - 在 Java 中,对空闲线程使用 Thread.sleep(1) 是否有效?

我的线程中有一个主循环,其中一部分测试空闲boolean值是否为真。如果是,它将在每次循环迭代时调用Thread.sleep(1)。这是一种有效的方法吗?我的目标是让线程在空闲时占用最少的CPU。 最佳答案 没有。使用Object.wait相反,并确保您在包含boolean值的对象上同步。如果您不同步并且boolean不是volatile,您就没有内存屏障,因此无法保证轮询线程会看到对的更改boolean值。根据javadoc:Thismethodcausesthecurrentthread(callitT)toplaceitsel

C++11 线程 : sleep for a remaining time

我正在尝试使用C++11线程为我的小游戏实现一个更新线程。我已经让更新周期“尽可能快”地进行,但我想将其限制为每秒60次。如何获得剩余时间?Core::Core(){std::threadupdateThread(update);//Startupdatethread}voidCore::update(){//TODOGetstarttime//Herehappenstheactualupdatestuff//TODOGetendtime//doubleduration=...;//Gettheduration//Sleepifnecessaryif(duration

c++ - FFmpeg 库 : Exactly constant segment duration for HLS

我们正在使用FFmpeg库git-ee94362libavformatv55.2.100。我们的目的是使用HLS将两个流(视频和音频)混合到M3U8播放列表中。此外,我们希望每个TS片段文件的持续时间正好为3.0秒(帧速率为25fps)。为了实现它,我们尝试设置几个选项和属性,即:-分段时间-keyint_min-scenechange_threshold-gop_size-force_key_frames。我们的代码如下所示:AVCodecContext*codec_ctx=NULL;AVFormatContext*ofmt_ctx=NULL;intret=0,gopSize=(in

c++ - 在不使用 sleep 的情况下延迟后在 C++ 中执行函数

有没有一种简单的方法可以在C++中的特定延迟后让事情发生?在python中,我只使用frame.after(ms,myFunction),它既好又简单——在C++中这似乎是一个更棘手的问题!之前有人建议我使用Sleep(),不幸的是,这不起作用,因为我正在为《半条命2》编写模组,如果我使用Sleep,那么整个游戏会挂起X秒,而不是在X之后调用事件秒。那么有没有另一种方法可以在不使用sleep的情况下在特定延迟后调用函数? 最佳答案 恕我直言,基本上你有2个选择:创建第二个线程,它将代替您的主线程休眠。创建第二个包含计时器的线程。我只

c++ - std::hash 用于 std::chrono::duration

我正在尝试在std::chrono::duration上设置一组对象的键。这不会编译:#include#includeclassFoofinal{public:Foo(){}inty;};intmain(void){automap=std::unordered_map,Foo>();map[std::chrono::duration(5)].y=0;return0;}/usr/include/c++/4.9/bits/hashtable_policy.h:Ininstantiationof'structstd::__detail::__is_noexcept_hash>,std::ha

c++ - `std::this_thread::sleep_for()` 是否有任何特定于平台的限制?

在使用std::this_thread::sleep_for()毫秒及以上时,是否需要考虑任何已知的可移植性问题?在我正在进行的项目中,我希望使用Microsoft的Sleep()到naonsleep()到usleep,具体取决于特定平台上可用的内容。其中一些具有明显的限制,例如在某些平台上不支持1000毫秒或更多的延迟。std::this_thread::sleep_for()是否也有这样的怪癖? 最佳答案 Maximumsleepduration:std::this_thread::sleep_for()这里没有问题。你想睡多久

c++ - 用户定义的重载运算符 * 与 std::chrono::duration

我创建了一个Frequency类模板,旨在与std::chrono::duration结合使用.Frequency对象存储每单位持续时间的周期数(两者都使用其类型的模板参数)。这个想法是将频率乘以持续时间产生一个Rep类型的对象。这是类定义。除了相关成员,我已经省略了所有成员。#include#includeusingnamespacestd::chrono;template>classFrequency{public:explicitFrequency(Repcycles):_cycles{cycles}{}friendRepoperator*(constFrequency&f,co