class_docstr: A class for handling eager execution.
  
  The default behavior for asynchronous execution is to serialize all ops on
  a single thread. Having different `Executor` objects in different threads
  enables executing ops asynchronously in parallel:
  
  ```python
  def thread_function():
    executor = executor.Executor(enable_async=True):
    context.set_executor(executor)
  
  a = threading.Thread(target=thread_function)
  a.start()
  b = threading.Thread(target=thread_function)
  b.start()
  ```
code: def __del__(self):
      try:
          self.wait()
          pywrap_tfe.TFE_DeleteExecutor(self._handle)
      except TypeError:
          # Suppress some exceptions, mainly for the case when we're running on
          # module deletion. Things that can go wrong include the pywrap module
          # already being unloaded, self._handle. no longer being
          # valid, and so on. Printing warnings in these cases is silly
          # (exceptions raised from __del__ are printed as warnings to stderr).
          pass
  
file_path: tensorflow/tensorflow/python/eager/executor.py
imports: from tensorflow.python import pywrap_tfe
label_desc: Use image node_id 2 for calling the Executor obj's underlying member method code with example usage: obj.__del__() without return types