Raspberry Pi:Библиотеки/WiringPi/Приоритет, прерывания и потоки
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Черновик |
WiringPi: Приоритет, прерывания и потоки[1]
Библиотека WiringPi обладает вспомогательными функциями, которые позволяют управлять приоритетом потоков и запускать новые потоки. Потоки работают одновременно с вашей главной программой и могут пригодиться для самых разных целей. Чтобы почитать о потоках более подробно, погуглите фразу «потоки POSIX».
Приоритет программ (потоков)
Прерывания
Благодаря новому патчу ядра для кода, обрабатывающего прерывания на GPIO-контактах, теперь ваша программа может ждать срабатывания прерывания. То есть теперь, пока вы ждете прерывания, процессор может выполнять другие задачи. GPIO-контактам можно задать прерывание на убывающем, на возрастающем или сразу на обоих фронтах входящего сигнала.
Примечание: На момент января 2013 года функция waitForInterrupt() является устаревшей. Используйте вместо нее более новую и простую wiringPiISR().
Параллельная обработка данных (многопоточность)
Библиотека WiringPi имеет упрощенный интерфейс для Linux-версии потоков POSIX, а также (упрощенные) механизмы для доступа к так называемым «мьютексам» (от «mutex», что является сокращением от «mutual exlusions»; этот термин обозначает механизм, который в вычислительных системах отвечает за синхронизацию доступа к общему ресурсу).
Используя эти функции, вы можете создать новый процесс (т.е. функцию внутри вашей главной программы), которая будет работать одновременно с главной программой и, используя механизм мьютекса, будет совместно с нею пользоваться общими переменными.