Модуль Thread предоставляет потоки, таймеры, примитивы синхронизации и выполнение задач:
- PIThread — выполнение цикла или разовой работы в отдельном потоке. Переопределение run() или использование цикла по умолчанию; запуск и остановка — start() и stop(). Может быть исполнителем событий для PIObject (см. Потоки и события).
- PITimer — периодические вызовы с заданной частотой (например в Гц). Подключение обработчика; запуск и остановка таймера. Используется в Простые начала и в примерах машины состояний.
- Синхронизация — PIMutex, PISpinlock, PIConditionVariable, PISemaphore, PIReadWriteLock для защиты общих данных и согласования потоков.
- PIThreadPoolExecutor — отправка задач в пул рабочих потоков; ожидание завершения или остановка пула.
- PIThreadPoolLoop — параллельный запуск функции по диапазону (стиль parallel-for).
- PIBlockingDequeue — блокирующая очередь производитель–потребитель для передачи работы между потоками.
Для исключений-безопасной блокировки используйте PIMutexLocker и аналогичные охранные классы. События из других потоков можно ставить в очередь и обрабатывать в потоке объекта через callQueuedEvents() (см. События и Обработчики событий). Полный API: pithread.h, pitimer.h, pimutex.h, pithreadpoolexecutor.h, piblockingqueue.h, pithreadmodule.h.