Algorithm is no longer an abstract class, it is an interface that is implemented by boundable algorithm
There are constructor changes all over the place. This is more prominent when creating algorithms as processors has been taken out of constructor.
ADDITIONS:
When creating more algorithms, they need to extend BoundableAlgorithm. This is so they can be run on threads.
AlgorithmFactory is just a simple interface so that algorithms can be created by TieredAlgorithm
TieredAlgorithm is where all the threading black magic happens. Any algorithm extending BoundableAlgorithm can be used here to be parallelized
MultiAlgorithmCommunicator is a class that is used by BoundableAlgorithm and TieredAlgorithm to talk to each other. Which is especially important when we want the threads to all access the same global schedule object.
A couple of classes for multithreaded integration tests. Some classes relate to a custom annotation allowing us to run the same test multiple times (just to be doubly sure threading all works as expected)
This is an exciting one. CHANGES:
ADDITIONS: