wol*_*olf 4 c++ pthreads thread-safety
阅读有关取消和pthreads的信息,在我看来,无限循环的线程的最佳实践不是取消线程而是创建将由线程检查的标志.
这种情况意味着在某些时候,某个线程可能会在有人写入该标志时尝试读取该标志.这个线程安全吗?我如何安全地同时使用get_flag()和set_flag()?
pthreads 标准使得在一个线程中修改某个值,而在另一个线程中修改或可能修改该值是未定义的行为。实际上,如果您使用volatile bool,它将适用于您可能遇到的每个平台。如果你想严格正确,你可以使用互斥体来保护标志,使用原子操作,或者使用内存屏障。