Глава 18. Многопоточная обработка
Глава 18. Многопоточная обработка
Обычные приложения с графическим интерфейсом имеют один поток (thread) выполнения и производят в каждый момент времени одну операцию. Если пользователь через интерфейс пользователя вызывает продолжительную операцию, интерфейс, как правило, «застывает» до завершения операции. В главе 7 («Обработка событий») даются некоторые способы решения этой проблемы. Применение многопоточной обработки — еще один способ решения данной проблемы.
В многопоточном приложении графический пользовательский интерфейс выполняется в своем собственном потоке, а обработка осуществляется в одном или в нескольких других потоках. В результате такие приложения способны реагировать на действия пользователя даже при продолжительной обработке. Еще одним преимуществом многопоточной обработки является возможность в многопроцессорных системах одновременно выполнять несколько потоков на разных процессорах, увеличивая производительность.
В данной главе мы сначала продемонстрируем способы создания подкласса QThread и способы применения классов QMutex, QSemaphore и QWaitCondition для синхронизации потоков. Затем мы рассмотрим способы взаимодействия вторичных потоков с главным потоком в ходе цикла обработки событий. Наконец, мы завершим главу обзором классов Qt, объясняя, какие из них могут использоваться во вторичных потоках.
Многопоточная обработка представляет собой обширную тему, которой посвящается много книг. В данной главе предполагается, что вам уже известны принципы многопоточного программирования, поэтому основное внимание уделяется методам разработки многопоточных приложений средствами Qt, а не теме потоков выполнения в целом.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
ГЛАВА 4 Обработка исключений
ГЛАВА 4 Обработка исключений Основное внимание в данной главе сфокусировано на структурной обработке исключений (Structured Exception Handling, SEH), но наряду с этим обсуждены также обработчики управляющих сигналов консоли и векторная обработка исключений (Vectored Exception Handling, VEH).SEH
Глава 6 Прерывания и обработка прерываний
Глава 6 Прерывания и обработка прерываний Управление аппаратными устройствами, которые подключены к вычислительной машине, — это одна из самых ответственных функций ядра. Частью этой работы является необходимость взаимодействия с отдельными устройствами машины.
Глава 12 Обработка сигналов
Глава 12 Обработка сигналов Сигналы — это простейшая форма межпроцессного взаимодействия в мире POSIX. Они позволят одному процессу быть прерванным асинхронным образом по инициативе другого процесса (или ядра) для того, чтобы обработать какое-то событие. Обработав сигнал,
Глава 13 Расширенная обработка файлов
Глава 13 Расширенная обработка файлов В Linux файлы применяются при решении большого количества задач, среди которых, например, хранение долговременных данных, организация сетей с помощью сокетов и доступ к устройствам посредством файлов устройств. Разнообразие
Глава 7. Обработка событий
Глава 7. Обработка событий События генерируются оконной системой или Qt в ответ на различные действия. Когда пользователь нажимает или отпускает клавишу или кнопку мышки, генерируется событие клавиши клавиатуры или кнопки мышки; когда окно впервые выводится на экран,
Глава 9 Обработка цифровых фотографий
Глава 9 Обработка цифровых фотографий ? Управление цветопередачей.? Управление освещением.? Управление резкостью.? Устранение артефактов с фотографии.? Устранение эффекта красных глаз.Современным любителям фотографии вряд ли знакомы те проблемы, которые приходилось
Глава 12 Многопоточная обработка
Глава 12 Многопоточная обработка 12.0. Введение В данной главе даются рецепты написания многопоточных программ на C++ с использованием библиотеки Boost Threads, автором которой является Вильям Кемпф (William Kempf). Boost — это набор переносимых, высокопроизводительных библиотек с
ГЛАВА 6. Структурированная обработка исключений
ГЛАВА 6. Структурированная обработка исключений Тема этой главы – устранение аномалий в среде выполнения вашего программного кода C# с помощью структурированной обработки исключений. Вы узнаете о ключевых словах C#, которые позволяют решать такие задачи (это ключевые
Глава 18. Обработка
Глава 18. Обработка Затем OCR-система анализирует (определяет блоки распознавания, выделяет в тексте строки и отдельные символы) изображение и начинает распознавать каждый его символ.Целостное целенаправленное адаптивное распознаваниеРаспознавание печатного материала
ГЛАВА 32. Обработка ошибок и события.
ГЛАВА 32. Обработка ошибок и события. В этой главе мы рассмотрим, как при выполнении модулей PSQL - триггеров и процедур - можно перехватывать и обрабатывать ошибки в выполняемом коде.Стандартным поведением модулей PSQL при появлении исключений является остановка выполнения,
Глава 10 Обработка
Глава 10 Обработка Сделан последний кадр, съемка окончена, под рукой имеется подходящий для работы компьютер со всеми установленными на него необходимыми приложениями, и вы уже готовы к покорению пикселов. Подробному процессу компьютерной обработки фотографий и прочих
Глава 1 Обработка аудиозаписей
Глава 1 Обработка аудиозаписей Программы, предназначенные для обработки аудиозаписей, как правило, имеют сходный пользовательский интерфейс. На экране мы видим волновую форму сигнала в графическом представлении: по вертикали – амплитуда, по горизонтали – время. Изгибы
Глава 8 Аппаратная обработка звука
Глава 8 Аппаратная обработка звука В этой главе мы лишь обозначим проблематику, необходимые сведения по указанной