Thread
Минималистичный планировщик для многопоточного выполнения на микроконтроллерах с вытесняющим переключением контекста между потоками
Установка
Последняя опубликованная версия- Скачайте архив — реестр отдает его уже проверенным.
- В Arduino IDE выберите «Скетч → Подключить библиотеку → Добавить .ZIP библиотеку».
- Укажите скачанный файл — библиотека появится в списке доступных.
SHA-256:49fd5f293c248d4cfa4c4f2ee73f3e53f9e781bc302d71527df1c4885fdfa3adThread-0.0.2-49fd5f29.zipОписание
Многопоточность на микроконтроллерах AVR8 обычно требует сложного планировщика, но эта библиотека реализует её минималистичным способом через вытесняющее переключение контекста между потоками. Функция spawn() создаёт новые потоки с собственными стеками, а yield() переключает выполнение между ними. Для синхронизации работают grab() и loose() — примитивные замки на основе семафоров. Библиотека позволяет работать как с временным срезом выполнения через quantize(), так и с кооперативным переключением через schedule(), при этом hold() отключает многопоточность вообще. Решение рассчитано на очень маленькие микроконтроллеры, где не хватает памяти под полноценную операционную систему.