Raspberry Pi:Библиотеки/WiringPi/Приоритет, прерывания и потоки/Параллельная обработка данных (многопоточность)/piLock()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


Функция piLock()[1]

Синтаксис

piLock(int keyNum);

Описание

Позволяют синхронизировать обновление переменных в главной программе для любых потоков, в этой программе запущенных. Параметр keyNum – это значение в диапазоне от «0» до «3», которое представляет собой «ключ». Если новый процесс пытается заблокировать ключ, уже заблокированный первым процессом, то будет поставлен на паузу, пока этот ключ не будет разблокирован первым процессом.

Эти функции могут понадобиться для того, чтобы получать корректные данные, когда происходит обмен информацией между главной программой и потоком. В противном случае может случиться так, что поток вдруг «проснется» прямо во время копирования данных и поменяет их – в итоге скопированные данные будут незаконченными, т.е. некорректными. Для примера можете посмотреть в программе «wfi.c», которая находится в папке «examples».

См.также

Внешние ссылки