code: def send_requests(self, *args):
          
          threads = [ClientThread(self, req) for req in args]
          for t in threads:
              t.start()
          for t in threads:
              t.join()
          exceptions = [t.exception for t in threads if t.exception]
          if len(exceptions):
              raise exceptions[0]
          return [t.response for t in threads]
docs: Send a set of requests.
  
          Each request is sent over its own connection and the function will
          return when all the requests have been fulfilled.