title: How can I make ThreadPoolExecutor command wait if there's too much data it needs to work on?
body: <p>I am getting data from a queue server and I need to process it and send an acknowledgement. Something like this:</p>
  
  <pre><code>while (true) {
      queueserver.get.data
      ThreadPoolExecutor //send data to thread
      queueserver.acknowledgement 
  </code></pre>
  
  <p>I don't fully understand what happens in threads but I think this program gets the data, sends it the thread and then immediately acknowledges it.  So even if I have a limit of each queue can only have 200 unacknowledged items, it will just pull as fast as it can receive it.  This is good when I write a program on a single server, but if I'm using multiple workers then this becomes an issue because the amount of items in the thread queue are not a reflection of the work its done but instead of how fast it can get items from the queue server.  </p>
  
  <p>Is there anything I can do to somehow make the program wait if the thread queue is full of work?</p>