code: def shrink(self, amount):
          
          # Grow/shrink the pool if necessary.
          # Remove any dead threads from our list
          for t in self._threads:
              if not t.isAlive():
                  self._threads.remove(t)
                  amount -= 1
  
          # calculate the number of threads above the minimum
          n_extra = max(len(self._threads) - self.min, 0)
  
          # don't remove more than amount
          n_to_remove = min(amount, n_extra)
  
          # put shutdown requests on the queue equal to the number of threads
          # to remove. As each request is processed by a worker, that worker
          # will terminate and be culled from the list.
          for n in range(n_to_remove):
              self._queue.put(_SHUTDOWNREQUEST)
docs: Kill off worker threads (not below self.min).