code: def _start_thread(self):
      debug("Queue._start_thread()")
  
      # Start thread which transfers data from buffer to pipe
      self._buffer.clear()
      self._thread = threading.Thread(
          target=Queue._feed,
          args=(
              self._buffer,
              self._notempty,
              self._send_bytes,
              self._wlock,
              self._writer.close,
              self._ignore_epipe,
              self._on_queue_feeder_error,
              self._sem,
          ),
          name="QueueFeederThread",
      )
      self._thread.daemon = True
  
      debug("doing self._thread.start()")
      self._thread.start()
      debug("... done self._thread.start()")
  
      if not self._joincancelled:
          self._jointhread = Finalize(
              self._thread,
              Queue._finalize_join,
              [weakref.ref(self._thread)],
              exitpriority=-5,
          )
  
      # Send sentinel to the thread queue object when garbage collected
      self._close = Finalize(
          self,
          Queue._finalize_close,
          [self._buffer, self._notempty],
          exitpriority=10,
      )
  
imports: import sys
  import os
  import threading
  import collections
  import time
  import weakref
  import errno
  from queue import Empty, Full
  from .None import connection
  from .None import context
  from .util import debug, info, Finalize, register_after_fork, is_exiting
label_desc: Use image node_id 15 for calling the Queue obj's underlying member method code with example usage: obj._start_thread() without return types