如何在线程之间共享全局对象?

时间:2019-03-27 14:11:43

标签: c++ class c++98 mbed

我创建了一个类,该类具有许多公共功能,其中一些可以写入数据,而有些只能读取数据。

这要求我在3个线程内执行此操作,我别无选择。

我知道是否访问共享资源只是为了读取,所以我不必保护,但是当我使用函数读取共享资源的私有变量时,我不知道它是否有所不同

例如我正在尝试...

globalObject.readColour();

这是一个读取全局对象颜色的函数。

这是否意味着我现在必须保护线程,还是可以无风险地读取值吗?

我正在研究mbed,它支持c和c ++ 98。

1 个答案:

答案 0 :(得分:1)

这个问题类似于this one

如果所有线程仅读取变量,则不需要互斥锁(或类似的互斥锁),但是如果有任何线程执行写操作,则应使用互斥锁。