Я понимаю, что this question похож, но мой не относится к Windows.Безопасно ли объявлять мьютексы в области файлов?
Это безопасная и хорошая форма для объявления мьютекса в области файлов как так?
#include <iostream>
#include <mutex>
#include "Logger.h"
mutex my_mutex;
void Logger::log()
{
lock_guard<mutex> lock(my_mutex);
for (int i = 0; i < 29; ++i)
{
cout << i << " ";
}
cout << endl;
}
* Я хочу синхронизировать на уровне экземпляра, а не через экземпляры. * Затем мьютексом должен быть нестатический член данных класса Logger. Глобальный мьютекс, который у вас есть сейчас, делает именно то, что вы говорите, что вы ** не хотите делать. – Praetorian
Чтобы обеспечить использование файловой области, используйте 'static' для объявления вашего мьютекса. Проблема: * file-scope * является антиномическим с * уровнем экземпляра *; что ты конкретно имеешь ввиду ? –
Отредактировал вопрос. Я понимаю, что мой код будет синхронизироваться между экземплярами. Хорошо. Благодарю. – Gareth