我们在c ++中有一个类,它具有UCHAR
字段标志。
class XYZ
{
... some fields..
UCHAR someFlag;
... some more fields
};
在XYZ
的同一对象上,我们从多个线程向0
写入1
和someFlag
布尔值,并从所有线程中读取。理想情况下,这将在0到1之间切换。someFlag
在每个请求上都会更改,即使我们看到针对少数请求临时启用/禁用它也是可以的。
是否有可能破坏someFlag
旁边的字段?
如果是,如果我们在someFlag
前后加上4个字节怎么办?
如果在进行写入时使用适当的锁编写了线程安全的应用程序,则不会造成任何问题。
假设您的意思是对于未经过威胁的安全应用程序,会有问题吗?可能存在但不会破坏任何其他字段。