|  | 
| 1 |  | -# `Arduino_Threads` library for Arduino | 
|  | 1 | +`Arduino_Threads` | 
|  | 2 | +================= | 
| 2 | 3 | 
 | 
| 3 | 4 | [](https://github.com/arduino-libraries/Arduino_Threads/actions/workflows/compile-examples.yml) | 
| 4 | 5 | [](https://github.com/arduino-libraries/Arduino_Threads/actions/workflows/check-arduino.yml) | 
| 5 | 6 | [](https://github.com/arduino-libraries/Arduino_Threads/actions/workflows/spell-check.yml) | 
| 6 | 7 | 
 | 
| 7 | 8 | This library makes it easy to use the multi-threading capability of [Arduino](https://www.arduino.cc/) boards that use an [Mbed OS](https://os.mbed.com/docs/mbed-os/latest/introduction/index.html)-based core library. | 
|  | 9 | + | 
|  | 10 | +## :zap: Features | 
|  | 11 | +### :thread: Multi-threaded sketch execution | 
|  | 12 | +Instead of one big state-machine-of-doom you can split your application into multiple independent threads, each with it's own `setup()` and `loop()` function. Instead of implementing your application in a single `.ino` file, each independent thread is implemented in a dedicated `.inot` representing a clear separation of concerns on a file level. | 
|  | 13 | + | 
|  | 14 | +### :calling: Easy communication between multiple threads | 
|  | 15 | +Easy inter-thread-communication is facilitated via a `Shared` abstraction providing thread-safe sink/source semantics allowing to safely exchange data of any type between threads. | 
|  | 16 | + | 
|  | 17 | +## :mag_right: Resources | 
|  | 18 | + | 
|  | 19 | +* [How to install a library](https://www.arduino.cc/en/guide/libraries) | 
|  | 20 | +* [Help Center](https://support.arduino.cc/) | 
|  | 21 | +* [Forum](https://forum.arduino.cc) | 
|  | 22 | + | 
|  | 23 | +## :bug: Bugs & Issues | 
|  | 24 | + | 
|  | 25 | +If you want to report an issue with this library, you can submit it to the [issue tracker](issues) of this repository. Remember to include as much detail as you can about your hardware set-up, code and steps for reproducing the issue. Make sure you're using an original Arduino board. | 
|  | 26 | + | 
|  | 27 | +## :technologist: Development | 
|  | 28 | + | 
|  | 29 | +There are many ways to contribute: | 
|  | 30 | + | 
|  | 31 | +* Improve documentation and examples | 
|  | 32 | +* Fix a bug | 
|  | 33 | +* Test open Pull Requests | 
|  | 34 | +* Implement a new feature | 
|  | 35 | +* Discuss potential ways to improve this library | 
|  | 36 | + | 
|  | 37 | +You can submit your patches directly to this repository as Pull Requests. Please provide a detailed description of the problem you're trying to solve and make sure you test on real hardware. | 
|  | 38 | + | 
|  | 39 | +## :yellow_heart: Donations | 
|  | 40 | + | 
|  | 41 | +This open-source code is maintained by Arduino with the help of the community. We invest a considerable amount of time in testing code, optimizing it and introducing new features. Please consider [donating](https://www.arduino.cc/en/donate/) or [sponsoring](https://github.com/sponsors/arduino) to support our work, as well as [buying original Arduino boards](https://store.arduino.cc/) which is the best way to make sure our effort can continue in the long term. | 
0 commit comments