Implemented a LoadingCache and replaced the different caching strategies inside the BlockingQueueDispatcher and the ThreadPoolExecutorDispatcher with the LoadingCache. Now caching behavior is consistent between the two dispatchers and the thread pool does not require an extra thread for the RingBuffer as it did before. Benchmark results for the thread pool dispatcher showed the same or slight better results by removing the RingBuffer as the cache for Tasks.