【发布时间】:2017-01-21 00:03:27
【问题描述】:
有人可以澄清一下这句话粗体部分的含义吗?如果可能的话,使用代码 sn-p。
我无法确定在这种情况下什么是调用线程和函数。
condition_variable 在 linux (gcc + pthreads) 上的行为有什么不同吗?
备注
等待条件变量的代码也必须使用互斥锁。 调用线程必须在调用等待条件变量的函数之前锁定互斥锁。当被调用函数返回时,互斥锁会被锁定。在线程等待条件变为真时,互斥锁未锁定。为了没有不可预知的结果,等待条件变量的每个线程必须使用相同的互斥对象。1
我有一个仅在 Windows 上显示的错误。 notify_one() 似乎被忽略了,但如果使用 wait_for() 而不是 wait() 代码可以正常工作(仍在尝试为此生成 MCVE)。
【问题讨论】:
标签: c++ multithreading visual-c++ condition-variable