我读过一些类似的问题,但那里描述的情况要复杂一些。
我在堆和两个线程中有一个bool b
初始化。false
我确实理解bools
are 的操作not atomic
,但请阅读问题直到最后。
第一个线程只能设置b = true
一次,并且不做任何其他事情。第二个线程b
在一个循环中检查,如果它true
做了一些动作。
我是否需要使用一些同步机制(如互斥锁)来保护b
?如果我不这样做会发生什么?当ints
我同时读写时,我显然可以得到任意值。但是有了bools
just true
andfalse
我不介意一次得到false
而不是true
. 有潜力SIGSEGV
吗?