diff --git a/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/MultiCacheKeyService.py b/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/MultiCacheKeyService.py
index a1873927dac26b080fa52e9e0eaac06dfbb6b97b..5260c830e3195cfb76de3ae6f8eb89e1129ad84f 100644
--- a/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/MultiCacheKeyService.py
+++ b/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/MultiCacheKeyService.py
@@ -1,4 +1,5 @@
 import abc
+import threading
 from abc import ABC
 from dataclasses import dataclass
 from datetime import datetime
@@ -14,18 +15,22 @@ class CacheEntry:
     cachedData: Dict
 
 
+lock = threading.Lock()
+
+
 class MultiCacheKeyService(ABC):
     def __init__(self):
         self._cache = {}
 
     def get_data(self, cacheKey: str, fetchIntervalInSeconds: int, settings: Dict) -> Dict:
-        if cacheKey not in self._cache:
-            self._cache[cacheKey] = CacheEntry(cacheKey, fetchIntervalInSeconds, settings, 0, {})
-
-        cacheEntry = self._cache[cacheKey]
-        if self.__is_data_obsolete(cacheEntry):
-            cacheEntry.cachedData = self._fetch_data(cacheEntry.settings)
-        return cacheEntry.cachedData
+        with lock:
+            if cacheKey not in self._cache:
+                self._cache[cacheKey] = CacheEntry(cacheKey, fetchIntervalInSeconds, settings, 0, {})
+
+            cacheEntry = self._cache[cacheKey]
+            if self.__is_data_obsolete(cacheEntry):
+                cacheEntry.cachedData = self._fetch_data(cacheEntry.settings)
+            return cacheEntry.cachedData
 
     def __is_data_obsolete(self, cacheEntry: CacheEntry) -> bool:
         now = datetime.now().timestamp()