同时写入内存中的一个字节

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

我们在c ++中有一个类,它具有UCHAR字段标志。

class XYZ
{
  ... some fields..
  UCHAR someFlag;
  ... some more fields
};

XYZ的同一对象上,我们从多个线程向0写入1someFlag布尔值,并从所有线程中读取。理想情况下,这将在0到1之间切换。someFlag在每个请求上都会更改,即使我们看到针对少数请求临时启用/禁用它也是可以的。

是否有可能破坏someFlag旁边的字段?

如果是,如果我们在someFlag前后加上4个字节怎么办?

c++ concurrency corruption
1个回答
0
投票

如果在进行写入时使用适当的锁编写了线程安全的应用程序,则不会造成任何问题。

假设您的意思是对于未经过威胁的安全应用程序,会有问题吗?可能存在但不会破坏任何其他字段。

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