0

虽然在 的文档的线程安全段落中没有明确提到这种情况boost::intrusive,但我想知道在以下情况下是否可以考虑boost::intrusive::list::front()安全:

  • 可能有一位作家push_back()在名单上
  • 列表总是至少有一个元素

该列表是自动取消链接类型的。我的直觉告诉我,在这种情况下没有任何理由front()而且push_back()很不礼貌。

4

1 回答 1

1

这绝对是一个竞赛条件。

只要插入的对象不同,对不同实例具有读或写访问权限的多个线程是安全的。

这里的关键是不同的实例。您正在同时读取和写入同一个实例,规范显然不能保证它的安全性。

实施可能没问题。我认为直觉上,它可能是。但是,该规范显然根本没有对此做出任何保证,并且您必须假设竞争条件,因为它不能保证。

于 2013-03-08T16:32:55.003 回答