М
Миша20 ноября 2017 г. 7:03

Многопоточность. Ошибки при обращении к переменной

QtConcurrent, многопоточность

Здравствуйте.
У меня 4 ядра процессора.
Вызываю несколько потоков функции:

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

Вам это нравится? Поделитесь в социальных сетях!

6
Evgenii Legotckoi
  • 20 ноября 2017 г. 14:37

С QtConcurent позже отвечу, запамятовал нюансы работы

    М
    • 21 ноября 2017 г. 1:48

    Как оказалось, вылетает на MainWindow w;
    Если переношу QMutex Mutex; выше MainWindow w; тоже вылетает.

    void StrategyCod(double Parametr) //код стратегии 
    {    
        MainWindow w;     
        QMutex Mutex; //мьютекст для блокировки данных для многопоточности    
        Mutex.lock();     
        QVector<double> Open=w.Open;     
        Mutex.unlock();
    }
    
      Evgenii Legotckoi
      • 21 ноября 2017 г. 3:32

      А зачем Вы каждый раз создаёте новый объект окна? Попробуйте сделать вашу задачу без класса, наследованного от QMainWindow. Вам нужно же только расчёты вынести в отдельный поток.

        М
        • 21 ноября 2017 г. 3:41

        Просто нужные мне данные хранятся в классе MainWindow. Их оттуда можно вынести, но это затрата лишних ресурсов. Хочу сделать пооптимизированней.

          Evgenii Legotckoi
          • 21 ноября 2017 г. 3:47

          Лучше вынести эти данные, такие классы работают в GUI потоке. Загрузку файлов, обработку и прочее делают отдельно от GUI потока Qt. Оптимизации ваш подход не даст... А если у Вас будет несколько потоков, то на каждый поток будет вызываться окно... забавная моргающая картинка из гирлянды окон будет.

            М
            • 21 ноября 2017 г. 4:14
            • (ред.)

            Не будет вызываться, оно вызывается ниже по коду. Но какая разница в каком классе хранить данные, если в этой функции я только их выгружаю.

            Но можно ли все таки выгружать данные из класса в потоки?

              Комментарии

              Только авторизованные пользователи могут публиковать комментарии.
              Пожалуйста, авторизуйтесь или зарегистрируйтесь
              AD

              C++ - Тест 004. Указатели, Массивы и Циклы

              • Результат:50баллов,
              • Очки рейтинга-4
              m
              • molni99
              • 26 октября 2024 г. 9:37

              C++ - Тест 004. Указатели, Массивы и Циклы

              • Результат:80баллов,
              • Очки рейтинга4
              m
              • molni99
              • 26 октября 2024 г. 9:29

              C++ - Тест 004. Указатели, Массивы и Циклы

              • Результат:20баллов,
              • Очки рейтинга-10
              Последние комментарии
              i
              innorwall14 ноября 2024 г. 20:42
              Как Копировать Файлы в Linux If only females relatives with DZ offspring were considered these percentages were 23 order priligy online uk
              i
              innorwall14 ноября 2024 г. 18:09
              Qt/C++ - Урок 068. Hello World с использованием системы сборки CMAKE в CLion ditropan pristiq dosing With the Yankees leading, 4 3, Rivera jogged in from the bullpen to a standing ovation as he prepared for his final appearance in Chicago buy priligy pakistan
              i
              innorwall14 ноября 2024 г. 13:05
              EVILEG-CORE. Использование Google reCAPTCHA 2001; 98 29 34 priligy buy
              i
              innorwall14 ноября 2024 г. 13:00
              PyQt5 - Урок 007. Работаем с QML QtQuick (Сигналы и слоты) priligy 30mg Am J Obstet Gynecol 171 1488 505
              Сейчас обсуждают на форуме
              i
              innorwall14 ноября 2024 г. 12:39
              добавить qlineseries в функции priligy amazon canada 93 GREB1 protein GREB1 AB011147 6
              i
              innorwall11 ноября 2024 г. 19:55
              Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
              9
              9Anonim25 октября 2024 г. 17:10
              Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
              ИМ
              Игорь Максимов3 октября 2024 г. 12:05
              Реализация навигации по разделам Спасибо Евгений!

              Следите за нами в социальных сетях