Provide an LRU cache of DSPs.
The cache key is assumed to be the DSP object.
The cache is synchronized to avoid race conditions.
Note that we do not have to release because Java
uses garbage collection and entries will be purged
if the LRU cache is full.