It is simplest implementation of iterative multithredaing for AVR8 microcontrollers. You can install this library by the library manager Arduino also.
See example for how to.
spawn(..)
create new thread with function and unique stack resources
yield()
switch execution to next thread immediately
hold()
disable yield() and time division functionality
schedule()
enable yield() functionality only (switching points)
quantize()
enable time division of the execution flows and yield()
grab(..)
implement mutual exclusion barrier lock (semaphore)
loose(.)
unlock barrier what has been locked by grab(..)
call
MAIN
pointer to dummy stack of the main root thread
thread
dynamic pointer on the process stack structure
what can be used for reentrant and identification