Python中的异步函数或线程

时间:2019-09-13 20:40:21

标签: python multithreading rest http asynchronous

我正在用python编写一个小应用程序,使用了一些http服务,但是我真的不理解使用异步函数或Thread来使用这些服务之间的区别。

任何人都可以帮助我理解吗?

2 个答案:

答案 0 :(得分:0)

从这篇非常好的文章中,我一直在学习编程的线程模型与异步模型。 http://krondo.com/blog/?p=1209

但是,本文提到了以下几点。

  1. 只要有I / O,异步程序就会在任务之间切换,从而胜过同步程序。
  2. 线程由操作系统管理。

我记得读过这篇文章,该线程是由操作系统通过在Ready-Queue和Waiting-Queue(以及其他队列)之间移动TCB来管理的。在这种情况下,线程也不会浪费时间在等待它们上吗?

鉴于上述情况,异步程序比线程程序有什么优势?

答案 1 :(得分:0)

在函数中有一个入口点和一个出口点(通常是函数的返回语句或最后一个语句)。

线程:执行从入口点到出口点的所有可能语句。

异步功能:

  

使用异步def语法定义的函数始终是协程函数

这来自python参考文档。而且协程可以在函数的入口和出口之间的任何位置从不同点进入,退出或恢复。

现在,根据您的要求,您可以选择使用哪个。