我有两个线程,一个更新一个int,另一个读取它.这是一个统计值,其中读取和写入的顺序无关紧要.
我的问题是,我是否需要同步访问这个多字节值?或者,换句话说,写入的一部分可以完成并被中断,然后读取就会发生.
例如,假设值= 0x0000FFFF,其值递增为0x00010000.
是否有时间值看起来像0x0001FFFF,我应该担心?当然,类型越大,发生这种情况的可能性就越大.
我总是同步这些类型的访问,但很好奇社区的想法.
我正在写一个数据采集系统.该系统既可以处理来自信号数字化仪的快速数据,也可以缓慢控制/监控诸如探测器的高压系统.慢速控制系统每秒读取一次电压并将其写入数据结构.
在写入磁盘之前,每个事件都标记有其检测器的电压.为此,事件处理线程读取慢速控制/监视线程写入的结构.
如果在电压读取后X微秒发生的事件被标记为前一秒的电压读取并不重要:我是否需要使用互斥锁来保护结构中的数据结构或原子变量?