虽然boost::intrusive
文档的“线程安全”段落中没有明确提及此案例,但我想知道在以下情况下是否可以考虑boost::intrusive::list::front()
安全:
push_back()
该列表属于自动取消链接类型。我的直觉告诉我,在这种情况下,front()
和push_back()
没有理由为什么会这样。
答案 0 :(得分:1)
这绝对是一场竞争。
具有对不同实例的读或写访问权的多个线程是 只要插入的对象不同,就是安全的。
这里的关键是不同的实例。您正在同时读取和写入同一个实例,而且规范显然不能保证它的安全性。
实现可能没问题。我认为直觉上可能会这样。但是,规范显然没有对此作出任何保证,你必须承担竞争条件,因为它不能得到保证。