这是我的问题。我有两个线程writer1和writer2来修改struture的attributs,writer1在attribut1中写道,writer2在attribut2中写道。我有一个读取结构的线程阅读器。我正在等待的是:当writer1正在编写时,writer2也可以同时编写。(它不会导致问题,因为它们会修改不同的属性)。当然,当writer2正在编写时,writer1也可以同时编写。但是当读取器读取结构的值时,writer1和writer2都不能同时写入。我应该确保我正在读取的值不会被其他线程改变
例:
data.frame
答案 0 :(得分:0)
只需使用互斥锁;) 它使用起来非常简单,可以解决你的问题。 http://en.cppreference.com/w/cpp/thread/mutex
答案 1 :(得分:0)
解决方案平面的一端 - 单个互斥体和作者与读者共享的单个条件变量。
另一端 - 两个原子变量和读者在两者之间旋转。
在架构上最干净(并且在完成时也快) - 由编写器ID键入的读取器的收件箱队列,因此不能将来自同一编写器的两条消息排队。