class_docstr: Base class for launching Devices in background processes and threads.
class_docstr_tok: ["Base","class","for","launching","Devices","in","background","processes","and","threads","."]
code: def join(self, timeout: Optional[float] = None) -> None:
      return self.launcher.join(timeout=timeout)
  
imports: import time
  from multiprocessing import Process
  from threading import Thread
  from typing import Any, Callable, List, Optional, Tuple
  import zmq
  from zmq import ENOTSOCK, ETERM, PUSH, QUEUE, Context, ZMQBindError, ZMQError, device
label_desc: Use image node_id 2 for calling the BackgroundDevice obj's underlying member method code with example usage: obj.join(timeout) and returns: self