# coding:utf-8 import threading import time from multiprocessing import RLock class ThreadSafeDict: def __init__(self): self._dict = {} self._lock = threading.Lock() def __getitem__(self, key): with self._lock: return self._dict[key] def __setitem__(self, key, value): with self._lock: self._dict[key] = value def __delitem__(self, key): with self._lock: del self._dict[key] def __len__(self): with self._lock: return len(self._dict) def __contains__(self, key): with self._lock: return key in self._dict def keys(self): with self._lock: return self._dict.keys() def values(self): with self._lock: return self._dict.values() def items(self): with self._lock: return self._dict.items() def pop(self, key): with self._lock: return self._dict.pop(key) lock = RLock() class GlobalResoure(object): process_map = {} @staticmethod def process_add(process_name, process_obj): create_time = time.time() with lock: GlobalResoure.process_map[process_name] = {"process_name": process_obj, "create_time": create_time} @staticmethod def process_del(process_name): with lock: GlobalResoure.process_map.pop(process_name)
sdk_url_whitelist.json
于 2024-09-17 21:21:36 首次发布