class_docstr: Maintain worker's information in a worker node. 
  
  Attributes:
      cpu_num(int): The number of CPUs to be used in this worker.
      gpu_num(int): The number of GPUs to be used in this worker.
      jobs(set): A set that records job addresses provided to the master.
      worker_address(str): Address of the worker.
docstr: Rmove a job from internal job pool.
  
  Args:
      killed_job(str): Job address to be removed.
  
  Returns: True if removing the job succeeds.
code: def remove_job(self, killed_job):
      """Rmove a job from internal job pool.
  
      Args:
          killed_job(str): Job address to be removed.
  
      Returns: True if removing the job succeeds.
      """
      ret = False
      self._lock.acquire()
      if killed_job in self.jobs:
          pid = self.jobs[killed_job].pid
          self.jobs.pop(killed_job)
          ret = True
          try:
              os.kill(pid, signal.SIGTERM)
          except OSError:
              logger.warning(
                  "job:{} has been killed before".format(pid)
              )
          logger.info("[Worker] kills a job:{}".format(killed_job))
      self._lock.release()
      return ret
  
file_path: PARL/parl/remote/status.py
imports: import threading
  from parl.utils import logger
  import signal
  import os
label_desc: Use image node_id 2 for calling the WorkerStatus obj's underlying member method code with example usage: obj.remove_job(killed_job) and returns: ret