title: grpc-Python max_workers limiting number of simultaneous processes
body: <p>while using python grpc server,</p>
  <p><code>server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))</code></p>
  <p>this is general way in which grpc server is instantiated. But with this running, if I try to run more than 10 instances of client , which expects server streaming, the 11th one doesn't work (I am running 10 instances of client which connects to this server and gets the stream)</p>
  <p>Even if I change max_workers to None, max it creates is 40 threads (8 cores x 5 as per documentation), so max 40 clients can be served simultaneously in that case.<br />
  Is this the expected behavior ?</p>
  <p>I was working on my code, but tried with general grpc python code documented here:</p>
  <p><a href="https://grpc.io/docs/tutorials/basic/python.html" rel="nofollow noreferrer">https://grpc.io/docs/tutorials/basic/python.html</a></p>
  <p>I am able to reproduce the same issue with this.</p>
  <p>To reproduce it, just run <code>route_guide_server.py</code> in one window with max_workers= 4 and then try to run 4-5 different clients in different windows . The 4th client will have to wait till one of the client is finished. (To get better view, add a time.sleep in yield)</p>
  <p>If a large number of clients (100s and 1000s of clients) want to access grpc server in python with streaming (which should be continuous), then anymore clients will never get chance.</p>