Raspberry Pi:Библиотеки/WiringPi/Приоритет, прерывания и потоки/Параллельная обработка данных (многопоточность)/piLock()
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Черновик |
Функция piLock()[1]
Синтаксис
piLock(int keyNum);
Описание
Позволяют синхронизировать обновление переменных в главной программе для любых потоков, в этой программе запущенных. Параметр keyNum – это значение в диапазоне от «0» до «3», которое представляет собой «ключ». Если новый процесс пытается заблокировать ключ, уже заблокированный первым процессом, то будет поставлен на паузу, пока этот ключ не будет разблокирован первым процессом.
Эти функции могут понадобиться для того, чтобы получать корректные данные, когда происходит обмен информацией между главной программой и потоком. В противном случае может случиться так, что поток вдруг «проснется» прямо во время копирования данных и поменяет их – в итоге скопированные данные будут незаконченными, т.е. некорректными. Для примера можете посмотреть в программе «wfi.c», которая находится в папке «examples».