Я работаю над созданием сервера C ++, который принимает несколько разных взаимодействующих клиентов, и я использую векторы, чтобы отслеживать их всех по отдельности.Однако я понял, что из-за большого количества запущенных потоков существует небольшая вероятность того, что вектор может быть прочитан и записан одновременно двумя потоками.Есть ли быстрый и безопасный способ добавить к ним мьютекс или что-то еще, чтобы он ожидал, пока все чтения не будут выполнены, пока другая функция не добавит к нему?Невыполнение этого требования может испортить протокол и, возможно, даже привести к сбою сервера.
У меня была идея создать глобальную переменную, которая блокировала бы все чтения для вектора, но я не уверен, что потоки могут бытьвелел взаимно исключать эту переменную (т.е. не менять bool на false и одновременно проверять ее как true, делая механизм бессмысленным).
Я использую Windows 7 (Visual Studio 2010 Pro).Спасибо за любой совет!