【发布时间】:2011-08-11 05:22:15
【问题描述】:
我正在设计一个接受多个不同交互客户端的 C++ 服务器,并且我使用向量来单独跟踪所有客户端。然而,我意识到,由于运行了这么多线程,一个向量可能被两个线程同时读取和写入的可能性很小。是否有一种快速安全的方法可以向它们添加互斥锁或其他东西,以便它会等到所有读取完成,直到另一个函数添加到它?不这样做可能会弄乱协议,甚至可能导致服务器崩溃。
我有一个想法来创建一个全局变量,它将所有读取锁定到一个向量,但我不确定是否可以告诉线程也相互排除该变量(即不要将 bool 更改为 false 并将其检查为同时为真,使机制毫无意义)。
我使用的是 Windows 7 (Visual Studio 2010 Pro)。感谢您的任何建议!
【问题讨论】:
标签: c++ windows multithreading vector mutex