CopyThreads
Облегчённая многопоточность для микроконтроллеров с копированием стека в памяти при переключении между потоками
Установка
Последняя опубликованная версия- Скачайте архив — реестр отдает его уже проверенным.
- В Arduino IDE выберите «Скетч → Подключить библиотеку → Добавить .ZIP библиотеку».
- Укажите скачанный файл — библиотека появится в списке доступных.
SHA-256:4136f7746a7cc3d2b6da32db42a3d5b6ebc35b5f2433d487a75452312590b90dCopyThreads-0.2.0-4136f774.zipОписание
Когда на микроконтроллере нужно делать несколько вещей одновременно, обычно выбирают либо официальный Arduino Scheduler, либо вообще отказываются от многопоточности. CopyThreads предлагает третий вариант: облегчённую многопоточность, построенную на идее копирования стека в кучу при переключении между потоками. Это позволяет экономить оперативную память: маленькие потоки не занимают впрок большой кусок памяти, как при классическом подходе. Создаёшь потоки через Scheduler.start() с функцией и аргументом, запускаешь цикловые задачи через startLoop(), используешь yield() вместо блокирующих операций. Библиотека работает на x86-64, Arduino (ATmega328), ESP32 и некоторых ATTiny, при условии что стек растёт вниз. Проект молодой, всё ещё развивается, автор просит обратную связь с GitHub.