PIP 5.6.1
Platform-Independent Primitives
Многопоточность

Модуль 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.