Потоки в C++ и Qt

Многопоточность в C++ и Qt: QThread и std::thread, мьютексы и условные переменные, сигналы между потоками, QtConcurrent и пулы потоков. Разборы типичных ошибок — гонки данных, взаимные блокировки, замороженный интерфейс.

Потоки и многопоточность

Сигналы и слоты между потоками: Qt::QueuedConnection на практике

Введение Одна из сильных сторон сигнально-слотовой системы Qt — она прозрачно работает между потоками, если объекты-получатели «живут» (имеют affinity) в разных потоках. Это решает классическую проблему многопоточного программирования:…

STL

Многопоточность в C++: std::thread, std::async, std::mutex

Современные процессоры имеют несколько ядер, что позволяет выполнять несколько задач одновременно. Чтобы эффективно использовать вычислительные ресурсы, C++ предоставляет инструменты многопоточности через стандартную библиотеку <thread>, <future> и <mutex>. В…

Процессы и потоки в Qt

Многопоточность в Qt: подробное руководство по QThread с примерами

Введение в многопоточность в Qt Многопоточность — это мощный инструмент, позволяющий выполнять несколько задач одновременно, что особенно важно для создания отзывчивых приложений с интенсивными вычислениями. Qt предоставляет несколько…

Процессы и потоки в Qt

QWaitCondition: условные переменные для синхронизации потоков

QWaitCondition позволяет потоку сообщать другим потокам о выполнение каких-либо условий. Один или несколько потоков могут блокировать ожидание QWaitCondition для установки условия с помощью wakeOne() или wakeAll(). Рассмотрим небольшой…

обновлено
Процессы и потоки в Qt

QMutex: синхронизация потоков в Qt

Основной задачей является защита объекта или части кода доступа только для одного потока при выполнении. При обращении к защищенному коду поток ожидает завершение блокировки и переходит к выполнению,…

обновлено
Процессы и потоки в Qt

Приоритет выполнения QThread

При запуске QThread методом start() можно указать приоритет его выполнение. Приоритет определяет приоритетность выполнения потока по отношению к другим потокам. Каждый приоритет сопоставим с числом и начинается от…

обновлено
Процессы и потоки в Qt

QProcess: запуск внешних процессов из Qt-приложения

Класс QProcess используется для запуска внешних программ и связи с ними. Чтобы запустить процесс, передайте аргументы name и command line программы, которую запускаете, в качестве аргументов start(). Аргументы…

обновлено