Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дополнительные материалы.pdf
Скачиваний:
3
Добавлен:
07.06.2025
Размер:
12.29 Mб
Скачать

РАЗРАБОТКА НА QT ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ

QTHREADPOOL И QRUNNABLE: ПРИМЕР

class HelloWorldTask : public QRunnable

{

void run() override

{

qDebug() << "Hello world from thread" << QThread::currentThread();

}

};

HelloWorldTask *hello = new HelloWorldTask(); QThreadPool::globalInstance()->start(hello);

QT CONCURRENT 7

РАЗРАБОТКА НА QT ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ

QT CONCURRENT

Распределение работы на потоки инкапсулировано

Шаблоны параллельных вычислений: map, filter и reduce

Возвращается объект QFuture

QtConcurrent автоматически корректирует количество потоков в соответствии с количеством доступных процессорных ядер

doc.qt.io/archives/qt-5.6/qtconcurrent-index.html

РАЗРАБОТКА НА QT ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ

QT CONCURRENT

Map и Map-Reduce

»QtConcurrent::map() и mapped() применяют функцию к каждому элементу в контейнере. Последний возвращает новый контейнер

»QtConcurrent::mappedReduced() подобен mapped(), но изменённые результаты уменьшаются или складываются в один результат

Filter и Filter-Reduce

»QtConcurrent::filter(), filtered() и filteredReduced() удаляют все элементы из контейнера на основе результата функции фильтра

Параллельный запуск

»QtConcurrent::run() запускает функцию в другом потоке