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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
 
Строка 9: Строка 9:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
piLock(int keyNum);
piLock(int keyNum);
</syntaxhighlight>
</syntaxhighlight>

Текущая версия от 19:52, 23 мая 2023

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


Черновик


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

Синтаксис

piLock(int keyNum);

Описание

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

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

См.также

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