This will output This code will output 10 HTTP_200’s (on my machine) instead 5. I expected that number of requests I make to the executor is equal to the number of jobs put into the thread executor queue. Why is this the case? How can I limit this number to the number of max workers? Answer It appears that self.executor._work_queue.qsize()