class_docstr: The client monitor watches the cluster status.
  
  Attributes:
      status (dict): A dict to store workers status and clients status.
class_docstr_tok: ["The","client","monitor","watches","the","cluster","status",".","Attributes",":","status","(","dict",")",":","A","dict","to","store","workers","status","and","clients","status","."]
code: def __init__(self):
      self.status = {
          "workers": defaultdict(dict),
          "clients": defaultdict(dict),
          "client_jobs": defaultdict(dict),
      }
      self.lock = threading.Lock()
  
file_path: PARL/parl/remote/cluster_monitor.py
imports: import cloudpickle
  import threading
  from collections import defaultdict, deque
  from parl.utils import to_str
label_desc: Use image node_id 1 to create a new ClusterMonitor object from inherited base classes: object with example: obj = ClusterMonitor()