title: Differences between gevent and tornado
body: <p>I understand that both <code>tornado</code> and <code>gevent</code> are asynchronous python frameworks.</p>
  
  <p>While reading the <a href="http://bottlepy.org/docs/stable/async.html#the-limits-of-synchronous-wsgi" rel="noreferrer">bottle documentation</a> I found that gevent actually is NOT asynchronous, and you can create thousands to pseudo-threads that work synchronously.</p>
  
  <p>Seondly, in gevent, you can not terminate the request handler early and you need to return the full response, while in tornado you can. (correct me if I'm wrong here)</p>
  
  <p>Can some one describe in detail how these systems work internally, and in what ways they are different. Also, how does WSGI play with the asynchronous nature of these systems? Do these frameworks conform to WSGI, if yes, how?</p>