class MyAwesomeThread(Thread):
    """
    Threading wrapper to handle counting and processing of tasks
    """

def __init__(self, session, q):
    self.q = q
self.count = 0
self.session = session
self.response = None
Thread.__init__(self)

def run(self):
    """TASK RUN BY THREADING"""
while True:
    url, host = self.q.get()
httpHeaders = {'Host': host}
self.response = session.get(url, headers=httpHeaders)
self.count += 1
self.q.task_done()
return
q = Queue()
threads = []
for i in range(CONCURRENT):
    session = requests.session()
t = MyAwesomeThread(session, q)
t.daemon = True
threads.append(t)
for url in buildurls():
    q.put_nowait((url, host))
for t in threads:
    t.start()
grequests pool with multiple request.session?