code: def start(self):  # noqa (complexity)
          
          if not self.__end.is_set():
              return
  
          self.__end.clear()
          try:
              self.__network_retry_queue = Queue(self.__network_retry_queue_size)
              self.__network_retry_thread = Thread(target=self.__network_retry, name='network')
              self.__network_retry_thread.start()
              try:
                  self.__amqplink.start()
              except Exception as exc:  # pylint: disable=broad-except
                  if not self.__amqplink.is_alive():
                      raise_from(LinkException("Core.AmqpLink: Failed to connect"), exc)
                  logger.exception("Unhandled startup error")
                  raise
  
              req = self.request_ping()
              if not req.wait(5):
                  raise LinkException("No container response to ping within 5s")
              # (for req.payload) pylint: disable=unsubscriptable-object
              if not req.success:
                  try:
                      info = ': %s' % req.payload[P_MESSAGE]
                  except (KeyError, TypeError):
                      info = ''
                  raise Exception("Unexpected ping failure: %s" % info)
  
              payload = req.payload
              self.__qapi_version_check(payload)
              if self.__default_lang is None:
                  self.__default_lang = payload['lang']
              self.__container_params = payload
              try:
                  self.set_compression(payload['compression'])
              except ValueError as ex:
                  raise_from(Exception('Container compression method (%d) unsupported' % payload['compression']), ex)
              self.__local_meta = payload['local_meta']
  
              self.__threadpool.start()
              self.__crud_threadpool.start()
          except:
              self.stop()
              raise
docs: Start the send & recv Threads.
          Start can be delayed to EG restore requestIds before attaching to the QAPI
          Note: This function waits for/blocks until amqplink connect(s) and the current
                sequence number has been obtained from the container (within 5 seconds)