java - python的协程是什么?和多线程有啥区别吗?
高洛峰
高洛峰 2017-04-18 10:03:13
0
4
608

这才刚刚学完多线程,最近在知乎https://zhuanlan.zhihu.com/p/...又看到协程这个概念,但是文章讲的我不明不白,而且前面只提到了协程相比多线程的三个优点,请问协程究竟是什么?他各有什么优缺点?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(4)
巴扎黑

Les coroutines sont similaires aux threads, mais les threads sont fournis par la couche inférieure du système d'exploitation, tandis que les coroutines sont fournies par la plateforme elle-même.
Les coroutines sont basées sur des threads. La couche inférieure d'une bibliothèque de coroutines est prise en charge par les threads du système d'exploitation, puis la bibliothèque effectue elle-même la planification des tâches sans s'appuyer sur la planification du système.
Les avantages des coroutines ont été mentionnés dans le lien que vous avez publié, mais l'inconvénient est que la mise en œuvre est plus compliquée et que les performances réelles seront inférieures à celles de l'utilisation directe des threads.

巴扎黑

Les coroutines sont en fait des appels de fonction, qui sont plus légers que les threads. Pour plus de détails, veuillez consulter les coroutines

.
伊谢尔伦
def 协程1():
    pass
def 协程2():
    pass
def 协程3():
    pass
def 协程n():
    pass

while 1:
    协程1()
    协程2()
    协程3()
    协程n()

Les coroutines sont des fonctions appelées dans une boucle infinie
Ce qui précède est l'idée de base des coroutines. Il n'y a rien de mystérieux~
Il doit être utilisé avec des E/S asynchrones pour éviter le blocage~

巴扎黑

Le concept de coroutine est expliqué en détail dans le lien au deuxième étage. Vous pouvez également en apprendre davantage sur gevent. Une bibliothèque basée sur coroutine. Après avoir compris cela, je pense que vous aurez une meilleure compréhension des coroutines

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal