title: What is the threading/IO model of a synchronous gRPC server? (C++)
body: <p>I have tried to find some exact information on the threading and IO model of the synchronous gRPC servers in C++, however couldn't find much information.</p>
  
  <p>I have read how it works for asynchronous and that it is up to the developer to implement the threading model in the application.</p>
  
  <p>Does sync gRPC use the same "epoll-engine" that async does? If so, how does it work with worker threads? In async, you can have one thread to serve "infinite" number of concurrent client connections, or streams even, how does that work in sync? Is a worker blocked on a client connection or stream? Does sync have a threadpool? If so, is it dynamically sized?</p>
  
  <p>I'd gladly be pointed to relevant documentation.</p>
  
  <p>Asked similar question in google-group aswell, <a href="https://groups.google.com/forum/#!topic/grpc-io/bTo9HoNtGy0" rel="nofollow noreferrer">here</a>, however failed to receive a response.</p>
  
  <p>Thanks,
  Rasmus</p>