# Why gRPC does not consume all of the threads and gets timed out? [on hold]

As I have read from this link about max_workers and maximum_concurrent_rpcs. It is seems that when I set max_workers to 1 and maximum_concurrent_rpcs to 1000 it should response to RPC methods ASAP.

My server code slurp:

self.server = grpc.server(futures.ThreadPoolExecutor(max_workers=1), maximum_concurrent_rpcs=1000)

And I have an RPC method that I sleep for 2 seconds and then returns the result. The problem I have is that server waits for the first method to get served and then returns the result for the second (waits 2 second after first method returns response). It seems that it returns results synchronously.
The interesting part is that when I increase max_workers to 2 or 3, server responds asynchronously. Why this behavior is like this?