A simple attempt at a low-ish level library of functions/classes to enable task-based concurrency and parallelism.
Used to protect resources which can have multiple simultaneous threads accessing it
Parent class from which user task classes are derived. Deals with all of the resource allocation and freeing, user is just required to overwrite the virtual 'work()' method, e.g. TaskA()
- Make more versatile using template for wuser defined work functions
- Thread pools to reduce overhead
- Thread priority - develop priority queue system for tasks
- Dynamic task scheduliing - develop scheduler to deal with when there are more tasks than threads, and to free up idle threads if their tasks are stuck for one whos resources are available
The last two may be straying into OS territory so possibly useless/wasteful. Also needed: good example use cases