|
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