flask多线程app.run(threaded=True)开启和没开启效果一样

我在别人的网页(http://ping.pe/)发现他的网页好几十个请求几秒就结束了,但是我自己用flask做的网站43个请求花了15秒才跑完,网上找了找开启多线程,可是拿秒表算了下其实开启threaded=True和没开启都是15秒才完成所有请求,是我开启多线程的方式不正确吗?我的43个请求如果都正常其实大概4秒就跑完了(用AJAX),可是有些主机是关机了的所有会有timeout,可是我设置了timeout=1严重的延迟其实都是这些timeout引起的,可是多线程不是该大大缩短这个时间吗,真是羡慕别人能做的那么好啊T_T。

阅读 20.9k
3 个回答

app.run(threaded=True)
设置threaded为True,开启的多线程是指不同路由使用多线程来处理请求,不是指单个路由多线程处理请求

@app.route('/t1')
def t1():
   sleep(5)
   return 'Hello World t1'

@app.route('/t2')
def t2():
   sleep(5)
   return 'Hello World t2'

如上面的代码:
app.run(threaded=?)
threaded为True ,同时访问 /t1 和 /t2 路由 ,5秒后/t1 和 /t2 一起返回结果
threaded为False ,同时访问 /t1 和 /t2 路由 ,5秒后/t1返回结果,10秒后/t2返回结果

使用了Manage.run()怎么设置才能开启threaded=True??

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏