使用boost :: thread将c ++对象从一个线程传递到另一个线程的正确方法是什么?

时间:2013-02-01 09:24:20

标签: c++ multithreading thread-safety

将C ++对象(地图,矢量等)从一个线程传递到另一个线程的正确方法是什么?我担心竞争条件,陈旧价值等等。我正在使用提升线程。

提前致谢!

1 个答案:

答案 0 :(得分:1)

这完全取决于这个对象“做什么”。如果它是自包含的,即不保存对可能在原始线程中使用的其他对象的指针/引用 - 似乎没有问题。如果OTOH 确实包含对原始线程中仍然可能正在使用的某些数据的引用 - 它的访问应该是同步的。

当然,应该避免传递复杂的对象副值。