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

问题描述 投票:1回答:1

我创建了一个类,它有许多公共函数,一些写数据,一些只读数据。

这需要我在3个线程中执行此操作,我没有其他选择。

我知道如果我只是为了阅读而访问共享资源,那么我不需要保护,但是当我使用函数来读取共享资源的私有变量时,我不知道它是否有任何不同。

例如。我想做...

globalObject.readColour();

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

这是否意味着我必须在此时保护线程,或者是否可以在没有任何风险的情况下读取值?

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

c++ class c++98 mbed
1个回答
1
投票

这个问题类似于this one

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

© www.soinside.com 2019 - 2024. All rights reserved.