I think 1 core thread should be enough. On the other hand, I think the LinkedBlockingQueue needs a capacity, in order to slow down the writers when the cache store can't keep up.