|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
||||||
Многопоточность в вычислениях функции16.11.2017, 17:54. Показов 4068. Ответов 39
Метки нет (Все метки)
Здравствуйте.
Скажите пожалуйста, как в функции вычисление qDebug()<<i*a; проводить в разных потоках, ускоряя таким образом вычисления?
0
|
||||||
| 16.11.2017, 17:54 | |
|
Ответы с готовыми решениями:
39
Многопоточность в вычислениях Многопоточность при математических вычислениях с выводом в ListBox |
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
|
| 17.11.2017, 11:51 [ТС] | |
|
Проще создать QCector co значениями, нежели функцию.
Но из моих вычислений никуда результаты возвращать не нужно. Скажите пожалуйста, если я использую QtConcurrent :: map , то будет ли также выполнятся автоматическая многопоточность?
0
|
|
|
|
|
| 17.11.2017, 12:06 | |
|
Не по теме: КХА!!!! Кхым!.. Кхе-кхе-хем!.. Извините, от неожиданности вопроса я аж ссылкой на doc.qt.io поперхнулся. Да. Добавлено через 1 минуту Оптимальная для вашего устройства, в зависимости от числа ядер и нитей (для HyperThreading). Оптимальность вычисляется на ходу.
0
|
|
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
||||||||||||||||
| 17.11.2017, 13:38 [ТС] | ||||||||||||||||
|
тогда при наличии функции
для многопоточности этой функции ввожу параметр а (вместо for ( i=0;i<2000000;++i) ) для перебора.
может быть так: QtConcurrent::map(Perebor, w.makePlot); не совсем понимаю как прописать использование элемента вектора Perebor вместо переменной а? Добавлено через 57 минут Пытаюсь вызвать так и так:
0
|
||||||||||||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|||||||||||
| 17.11.2017, 14:05 | |||||||||||
|
В контейнере должно быть столько элементов, сколько частей в диапазоне. Если задавать начальный индекс, а количество итераций зафиксировать, то примерно так:
0
|
|||||||||||
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
|
| 17.11.2017, 14:14 [ТС] | |
|
выдает ошибки:
C:\Qt\project\MyCandleSrick\mainwindow.h :47: ошибка: could not convert 'QtConcurrent::map(Iterator, Iterator, MapFunctor) [with Iterator = double*; MapFunctor = void (MainWindow::*)(double)](((MainWindow*)this)->MainWindow::Perebor.QVector<T>::end<dou ble>(), &MainWindow::StrategyCod1)' from 'QFuture<void>' to 'QFuture<double>' QFuture<double> Perebor2 = QtConcurrent::map(Perebor.begin(), Perebor.end(), StrategyCod1); ^ и: C:\Qt\Qt5.9.2\5.9.2\mingw53_32\include\Q tConcurrent\qtconcurrentmapkernel.h:69: ошибка: no match for call to '(QtConcurrent::MemberFunctionWrapper1<v oid, MainWindow, double>) (double&)' map(*it); ^
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 17.11.2017, 14:29 | |
|
Внимательно сверь мой фрагмент с тем, что там у тебя.
0
|
|
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
||||||
| 17.11.2017, 14:50 [ТС] | ||||||
|
Проверил и попробовал в разных интерпретациях покрутить. Все равно ошибки.
Добавлено через 15 минут но пробовал вставлять и в срр. все равно не работает. не могли бы вы скинуть ваш проект?
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 17.11.2017, 15:32 | |
|
В какой хедер? Все реализации должны быть в cpp. У меня нет проекта, я просто показал, как вызывать.
0
|
|
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
|||||||||||
| 17.11.2017, 16:48 [ТС] | |||||||||||
|
пишу в мэйне, выдает 2 ошибки:
что то не так.
0
|
|||||||||||
|
|
||||||
| 17.11.2017, 18:22 | ||||||
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 17.11.2017, 19:08 | |
|
Михаиллллллл, ты упорно ставишь double для индексов. В чём тут смысл?
0
|
|
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
|||||||||||||||||||||||||||||||
| 17.11.2017, 19:34 [ТС] | |||||||||||||||||||||||||||||||
|
Зачем вводить double d = 0.0; если нигде не использовать?
Документацию читал. И смотрел пример на оф. сайте(http://doc.qt.io/qt-5/qtconcur... n-cpp.html) и на других. Но пока свой вопрос не смог решить. Функция такая
Если написать так, то ошибка остается только одна
Может быть нужно что-то дописать в файл .pro . Сейчас он у меня такой:
Не выполнятся функция
0
|
|||||||||||||||||||||||||||||||
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
|||||||||||
| 18.11.2017, 17:57 [ТС] | |||||||||||
|
Добавил. Но вылезает все та-же ошибка :C:\Qt\Qt5.9.2\5.9.2\mingw53_32\include\ QtConcurrent\qtconcurrentmapkernel.h:69: ошибка: no match for call to '(QtConcurrent::MemberFunctionWrapper1<v oid, MainWindow, double>) (double&)'
map(*it); ^ при
C:\Qt\project\MyCandleSrick\main.cpp:24: ошибка: conversion from 'QFuture<void>' to non-scalar type 'QFuture<double>' requested QFuture<double> r = QtConcurrent::map(Perebor.begin(), Perebor.end(), w.StrategyCod1); ^ и C:\Qt\Qt5.9.2\5.9.2\mingw53_32\include\Q tConcurrent\qtconcurrentmapkernel.h:69: ошибка: no match for call to '(QtConcurrent::MemberFunctionWrapper1<v oid, MainWindow, double>) (double&)' map(*it); ^
0
|
|||||||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 18.11.2017, 20:50 | |
Сообщение было отмечено Михаиллллллл как решение
Решение
Сделай эту функцию static.
0
|
|
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
|||||||||||
| 20.11.2017, 12:32 [ТС] | |||||||||||
|
Сделал функцию статик:
Добавлено через 41 секунду А лямбду не стоит использовать, т.к. функция будет большая, выйдет не удобно. Добавлено через 47 минут Добавил статик в хедер, скомптлтровалось. Спасибо
0
|
|||||||||||
|
|
|||||||||||
| 20.11.2017, 12:51 | |||||||||||
0
|
|||||||||||
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
||||||
| 20.11.2017, 13:53 [ТС] | ||||||
|
если в одном файле срр объявлять функцию, то ее можно делать не статичной(как я понял, если объявлять ее вне класса). Если ее объявлять в хедере в классе, то нужно делать статичной, и она может использовать только статичные переменные.
Вот мой пример
0
|
||||||
| 20.11.2017, 13:53 | |
|
Ошибка в вычислениях, вызов ассемблерной функции из С кода
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|