Многопоточность. Ошибки при обращении к переменной
Здравствуйте.
У меня 4 ядра процессора.
Вызываю несколько потоков функции:
QFuture<void> Perebor2 = QtConcurrent::map(Perebor, StrategyCod);Функция при старте обращается к 6 массивам основного класса. В каждом массиве около 2 млн элементов.
При многопоточном запуске появляется ошибка.
Скажите пожалуйста, как решить вопрос с запросом данных из одного места?

We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Timeweb
Let me recommend you the excellent hosting on which EVILEG is located.
For many years, Timeweb has been proving his stability.
For projects on Django I recommend VDS hosting
View Hosting
С QtConcurent позже отвечу, запамятовал нюансы работы
Как оказалось, вылетает на MainWindow w;
Если переношу QMutex Mutex; выше MainWindow w; тоже вылетает.
А зачем Вы каждый раз создаёте новый объект окна? Попробуйте сделать вашу задачу без класса, наследованного от QMainWindow. Вам нужно же только расчёты вынести в отдельный поток.
Просто нужные мне данные хранятся в классе MainWindow. Их оттуда можно вынести, но это затрата лишних ресурсов. Хочу сделать пооптимизированней.
Лучше вынести эти данные, такие классы работают в GUI потоке. Загрузку файлов, обработку и прочее делают отдельно от GUI потока Qt. Оптимизации ваш подход не даст... А если у Вас будет несколько потоков, то на каждый поток будет вызываться окно... забавная моргающая картинка из гирлянды окон будет.
Не будет вызываться, оно вызывается ниже по коду. Но какая разница в каком классе хранить данные, если в этой функции я только их выгружаю.