相关疑难解决方法(0)

如何检查std :: thread是否仍在运行?

如何检查a std::thread是否仍在运行(以独立于平台的方式)?它缺乏一种timed_join()方法,joinable()并不适用于此.

我想std::lock_guard在线程中使用a锁定互斥锁并使用try_lock()互斥锁的方法来确定它是否仍然被锁定(线程正在运行),但对我来说似乎不必要的复杂.

你知道更优雅的方法吗?

更新:要明确:我想检查线程是否干净地退出.为此,"悬挂"线程被认为正在运行.

c++ multithreading c++11 stdthread

76
推荐指数
4
解决办法
8万
查看次数

如何确定std :: future是否具有值?

请注意,这与调用不同valid()valid()指示将来是否完全具有有效的共享状态,但是我想知道的是是否已设置了将来的值(即通过std::promise::set_value)。

有一种wait_for方法,但是我根本不希望调用线程阻塞,我只想检查值的存在。从理论上讲,我可以将wait_for持续时间设为零,但我不知道这是否实际上是这样做的首选方式,而且我不确定wait_for以零持续时间调用时的预期行为是什么。

c++ multithreading future c++11

5
推荐指数
1
解决办法
1903
查看次数

标签 统计

c++ ×2

c++11 ×2

multithreading ×2

future ×1

stdthread ×1