Implement a thread-safe cache with an eviction policy suitable for high-throughput API endpoints.
Implement run_cache(capacity, operations). The cache must use least recently used eviction, make get and put operations thread-safe, and support O(1) average-time access and eviction. Each operation is a dictionary with op equal to get or put; get includes key, while put includes key and value. Return the results of get operations in order, using null for missing keys.
def run_cache(capacity, operations):