【发布时间】:2019-04-10 16:24:30
【问题描述】:
我想通过线程共享一个 std::vector 指针。每个线程都应该能够获取或删除指针并将其从向量中删除。我怎样才能使这个线程安全,C++ 标准库中是否有任何东西可以做到这一点?
【问题讨论】:
-
欢迎来到 Stackoverflow!请查看How to Ask。如果您包含您尝试的代码,对其他人将非常有帮助!
-
XY 问题警告。您的问题可能有更好的解决方案,不涉及共享指针向量...
-
如何使 any 共享数据线程安全的简短回答:每个线程在访问数据之前锁定一个互斥锁,每个线程将互斥锁锁定的时间最短可能,每个线程在解锁互斥锁之前确保数据处于一致的状态——其他线程可以安全地看到。请注意,“访问”仅包括查看数据。当另一个线程只完成一半的更改时,您通常不希望一个线程查看数据。
标签: c++ multithreading thread-safety c++-standard-library