所以我一直在研究如何编写异步代码,我想出了下面的代码:
我有以下两个问题:
- 我们怎么能假设这段代码是异步的?我们只是依赖于使用 gen 模块使其异步的事实(当然我们需要为 gen 协程编写异步模块)
- 为什么龙卷风会合并一个主线程?我们可以有一个主线程链接到另一个线程池的线程池吗?这个问题更倾向于我们用一个主线程实现什么?
from tornado import gen
import tornado.web
import tornado.ioloop
import motor
class MainHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous
@gen.coroutine
def get(self):
post = yield db.user.find_one()
print post
self.write(post['name'])
handlers=[(
(r'/', MainHandler)
)]
db = motor.MotorClient().example
if __name__ == '__main__':
application = tornado.web.Application(handlers,debug=True)
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()