Threadly is a collection of utilities to help in concurrent development. Those tools range from utilities used in the actual code, to utilities in helping to unit test concurrent architectures.
Threadly has quite a lot of features, to make it simpler to digest, we have broken them down into categories with small descriptions of the types of things contained in each category.
Utilities for concurrent design
The bulk of the features for threadly fall into this category. A high level overview of the types tools provided here are:
- Thread pools for different or specific situations, example PriorityScheduler
- The ability to restrict and control thread pools more, examples ExecutorLimiter
- The ability to control concurrency throughout the program, example TaskExecutorDistributor
- Tools for handling Futures
- Tools for creating event driven, listener based designs
- Other commonly needed miscellaneous tools
Utilities for debugging concurrent applications
Debugging concurrency can be pretty tricky. Threadly provides a couple of tools for both understanding where bottlenecks exist, as well as debugging possible race conditions.
Utilities for unit testing concurrent applications
Unit testing concurrent applications can be tricky. Things now happen asynchronously, and so it can be hard to control both the test, as well as the application. Threadly provides some tools which it uses heavily in verifying it's own design, but has proven to be very useful in unit testing other applications concurrent designs as well.