问题标签 [unique-lock]

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 投票
0 回答
115 浏览

c++ - 捕获 STD::unique_loc在用作线程函数的 lambda 函数中

STD::unique_loc<std::mutex>如果在用作线程函数的 lambda 函数中捕获 a 是否有任何潜在问题?例如:

0 投票
2 回答
134 浏览

c++ - std::lock_guard 是否在使用 std::adopt_lock 选项构造后释放互斥锁?

我知道我的问题与此非常相似Why does std::lock_guard release the lock after using std::adopt_lock? ,但我看到的行为不是。这是我的代码:

这是我得到的结果:

显然,unique_lockinfun1仍然持有互斥锁。所以我的问题是“使用选项std::lock_guard构造后是否释放互斥锁?”。std::adopt_lock希望大家能帮我澄清一下这种情况。谢谢你。

0 投票
1 回答
79 浏览

c++ - 在互斥体上使用多个std :: unique_lock,FIFO中的所有线程都等待进程?

当我有三个或更多线程时,如果互斥锁在一个线程中解锁,下一个将处理哪一个?他们是先进先出规则吗?如果不是FIFO,几个线程wait unlock(),会不会有一个线程永远不会处理?他们是否在排序队列中等待,排序规则是什么?

示例代码:

0 投票
1 回答
26 浏览

multithreading - 为什么 std::condition_variable wait() 需要 std::unique_lock 参数?

我的线程不需要被锁定。std::unique_lock锁定施工线程。我只是将cond_var.wait()其用作避免忙于等待的一种方式。我基本上通过将 unique_lock 放在一个很小的范围内来规避自动锁定,因此在它离开这个微小的范围后破坏了唯一的锁。此外,如果相关的话,只有一个消费者线程。

是否有更好的选择来避免 unique_lock 中不必要的自动锁定功能?我正在寻找一个无互斥锁选项来简单地向线程发出信号,我知道std::condition_variable_any但这需要一个互斥锁,这在我的情况下又是不必要的。