安利一篇我翻译的国外大牛的神经网络入门文章

http://stackoverflow.com/questions/13292407/how-to-improve-the-performance-of-the-combination-of-gevent-and-tornado?rq=1
在stackoverflow上看到有人给出了将tornado和gevent结合的编码例子,记在这里,便于以后查阅。细节待有时间在补充吧
这是第一段

# Gevent monkeypath
from gevent import monkey
monkey.patch_all()# Gevent imports
import gevent# Python immports
import functools# Tornado imports
import tornado.ioloop
import tornado.web
import tornado.httpserver# Request imports
import requests# Asynchronous gevent decorator
def gasync(func):@tornado.web.asynchronous@functools.wraps(func)def f(self, *args, **kwargs):#self._auto_finish = Falsereturn gevent.spawn(func, self, *args, **kwargs)return f# Constants
URL_TO_FETCH = 'http://google.co.uk/'# Global
I = 0class MainHandler(tornado.web.RequestHandler):@gasyncdef get(self):global Ir = requests.get(URL_TO_FETCH)I += 1print('Got page %d (length=%d)' % (I, len(r.content)))self.write("Done")self.finish()# Our URL Mappings
handlers = [(r"/", MainHandler),
]def main():# Setup app and HTTP serverapplication = tornado.web.Application(handlers)http_server = tornado.httpserver.HTTPServer(application)http_server.listen(9998)# Start iolooptornado.ioloop.IOLoop.instance().start()if __name__ == "__main__":main()

这是第二段,可以采用coroutine的方式调用

# encoding: utf-8from gevent import monkey
monkey.patch_all()# Gevent imports
import gevent# Python immports
import functools# Tornado imports
import tornado.ioloop
import tornado.web
import tornado.gen
import tornado.httpserver# Request imports
import requests
from tornado.concurrent import Future# Asynchronous gevent decorator
def gfuture(func):@functools.wraps(func)def f(*args, **kwargs):loop = tornado.ioloop.IOLoop.current()future = Future()def call_method():try:result = func(*args, **kwargs)loop.add_callback(functools.partial(future.set_result, result))except Exception, e:loop.add_callback(functools.partial(future.set_exception, e))gevent.spawn(call_method)return futurereturn f# Constants
URL_TO_FETCH = 'http://google.com/'# Global
I = 0@gfuture
def gfetch(url, i):r = requests.get(url)return iclass MainHandler(tornado.web.RequestHandler):@tornado.web.asynchronous@tornado.gen.coroutinedef get(self):global II += 1n = Iprint "=> %s" % nn = yield gfetch(URL_TO_FETCH, n)print "<= %s" % nself.write("Done %s" % n)# Our URL Mappings
handlers = [(r"/", MainHandler)]def main():# Setup app and HTTP serverapplication = tornado.web.Application(handlers)http_server = tornado.httpserver.HTTPServer(application)http_server.listen(9998)# Start iolooptornado.ioloop.IOLoop.instance().start()if __name__ == "__main__":main()

另外网上有两个比较好的项目可以供参考:
https://github.com/liujinliu/tornalet/blob/master/tornalet.py(这份是我fork别人的一份工程)
https://github.com/mongodb/motor

tornado+gevent相关推荐

  1. web编程速度大比拼(nodejs go python)(非专业对比)

    C10K问题的解决,涌现出一大批新框架,或者新语言,那么问题来了:到底谁最快呢?非专业程序猿来个非专业对比. 比较程序:输出Hello World! 测试程序:siege –c 100 –r 100 ...

  2. python调用有道词典_菜鸟上手Python最有野心的库Asyncio

    Asyncio是Python中非常牛逼的一个异步并发库,比较复杂不太好理解!从Py3.4之后开始加入这个内置并发库,一举解决了Python中高并发的问题.它提供了一整套异步IO模型的编程接口,可以说它 ...

  3. python threading_Python threading

    最新项目 命名线程 这是一种将python中设置的线程名传播到系统的技巧. warning:这仅用于测试/调试目的.不要在生产中运行. 问题 您可以用python命名线程,如下所示: import t ...

  4. PYTHON 之 COROUTINE

    参考资料 资料 https://blog.csdn.net/andybegin/article/details/77884645 http://python.jobbole.com/86481/ ht ...

  5. gevent+django并发资料调研

    下面是百度和Google上面的所有关于gevent+Django的调研: 百度搜索django gevent,然后下面是百度前10页的所有相关链接(有些博主自己都没搞懂asyncio异步和celery ...

  6. django在nginx uwsgi和tornado异步方案在项目中的体验

    前言: 这两天搜文章的时候,发现不少人对tornado有些误解的.只是想说说自己对于这些框架的理解,和实际项目中的对比. 部分有文章说tornado性能很一般,我当时一瞅,很是郁闷,这些人是怎么测试的 ...

  7. tornado 第一篇

     一:异步和非阻塞IO 实时的web特性通常需要每个用户一个大部分时间,在传统的同步web服务器中,这意味着需要给每个用户分配一个专用的线程,这样的开销是十分巨大 tornado使用啦一种单线程事件循 ...

  8. Web框架 Bottle 、Flask 、Tornado

    Bottle Flask Tornado Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标 ...

  9. gevent开发http服务器与tcp服务器(WSGIServer、StreamServer)

    感觉上gevent相关的东西也都了解的差不多了...最后收一下尾,看看怎么来利用gevent来实际的开发吧... 先来说http服务器相关的...因为gevent中带有WSGI的server实现... ...

最新文章

  1. mpvue 转uniapp 导航栏样式错乱问题修复 tabbar 样式修复
  2. python自动化上传图片_接口自动化之Python3_Requests之上传头像
  3. 做一个成功的网络项目的详细推广流程
  4. ML之xgboost:利用xgboost算法(sklearn+3Split)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测)
  5. 最详细的使用 soapui 消费 SAP Cloud for Customer Web service 的教程
  6. Webpack基础之加载器
  7. eclipse中The JSP specification requires that an attribute name is preceded by whitespace
  8. RTSP客户端接收存储数据(live555库中的openRTSP实例)
  9. 自学JAVA-2:数据类型与运算符
  10. 传统架构 vs 云原生架构,谈谈为什么我们需要云原生架构?
  11. 华为/荣耀 笔记本 HiboardDataReport.exe应用程序错误
  12. echarts结合amap (echarts-extension-amap)
  13. 信息系统安全等级保护流程
  14. 新个税来了!一图看清你能省多少钱,转需! ​​​​
  15. 收藏一个Ping的小工具类,可用于网络中检测目的设备是否在线
  16. Silverlight教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)
  17. 彻底关闭IE的自动完成提示
  18. 监控工具——Metrics的Histogram可配置项
  19. R语言使用dgamma函数生成Gamma分布密度函数数据、使用plot函数可视化Gamma分布密度函数数据(Gamma Distribution)
  20. java中的实例变量

热门文章

  1. Spring实战源码使用IDEA编译启动
  2. NKCTF2023 babyrust
  3. 一文了解0欧电阻的奥秘:它不是导线,也不是真的0欧
  4. 分布式定时任务-分片使用场景
  5. 本人11年的软件工程师试用期工作总结,正准备转正的朋友可以参考下
  6. 开发Discuz论坛插件教程
  7. js 监听返回键 利用pushState
  8. 使用jieba分析小说太古神王中,男主更爱谁?去文章中找答案吧!#华为云·寻找黑马程序员#
  9. js中int转string,固定位数,不足位数,前面用固定符号补齐。
  10. 《游戏设计艺术(第二版)》第四章个人学习