在MacOSX上,使用g ++,std :: vector .size()线程安全吗?

ano*_*non 5 c++ macos

我有一个std :: vector <...>在两个线程中共享。

他们两个都调用vec-> size();。

这可以成为比赛条件的来源吗?我不希望因为vec-> size()是const。

谢谢!

Dra*_*sha 5

如果要调用ONLY vec->size()你是安全的。但这很难相信。一旦您调用任何改变方法,例如push_back比赛,都可能导致尺寸错误。

  • 不太难相信,因为...我想有人可以检查vector.size(),并且*如果*不为空,那么*则*可以进行互斥锁锁定/解锁。 (2认同)