Dzwebs.Net

撰写电脑技术杂文十余年

flask禁用或使用多线程的简单代码与区别

Admin | 2022-2-19 20:11:55 | 被阅次数 | 2822

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  使用flask,如果需要开启多线程,就要使用threaded这个参数。

  并且,flask的多线程是针对路由而言,对于普通的函数或代码,没有多线程的效果。

  下面一起看看吧。

  一、示例代码

  其它代码已省略,只提供关键代码…

  def t1():
      print('t1收到请求',time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())), flush=True)
      time.sleep(8)
      print('t1返回请求',time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())), flush=True)
      return 'Hello World t1'+time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))

  def t2():
      print('t2收到请求',time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())), flush=True)
      time.sleep(8)
      print('t2返回请求',time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())), flush=True)
      return 'Hello World t2'+time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
  if __name__ == '__main__':
      server.run(debug=False,threaded=True,processes=False)
   #threaded多线程,processes多进程,两种只能开一个,threaded为False,processes的值当设置为一个整数。使用了前者,processes最好不填都可以,免得麻烦。

  二、观察多线程与单线程的区别

  ①单线程


  单线程的参数:threaded=False 观察上图即明白。同一时间收到多任务,单线程就得排队。

  ②多线程


  多线程的参数是:threaded=True 观察上图即明白。同一时间收到多任务,多线程不用排队。

  三、总结

  经过测试,flask如果不使用或不填threaded参数,默认其实就是单线程的。只有threaded=True或processes=50这种情况才是多线程的。


网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231