Concernant les coroutines, la chose la plus courante que vous puissiez lire est cette phrase : "Les coroutines sont des threads en mode utilisateur".
Pour comprendre ce qu'est un « thread en mode utilisateur », vous devez d'abord comprendre ce qu'est un « thread en mode noyau ». Les threads d'état du noyau sont planifiés par le système d'exploitation. Lors du changement de contexte de thread, vous devez d'abord enregistrer le contexte du thread précédent, puis exécuter le thread suivant lorsque les conditions sont remplies, revenir au thread précédent et restaurer le contexte. Il en va de même pour les coroutines, sauf que les threads en mode utilisateur ne sont pas planifiés par le système d'exploitation, mais par les programmeurs, en mode utilisateur.
yield这个关键字就是用来产生中断, 并保存当前的上下文的, 比如说程序的一段代码是访问远程服务器,那这个时候CPU就是空闲的,就用yield让出CPU,接着执行下一段的代码,如果下一段代码还是访问除CPU以外的其它资源,还可以调用yieldAbandonnez le CPU. Continuez l'exécution, afin de pouvoir écrire du code asynchrone de manière synchrone.
Compréhension des processus, des threads et des coroutines
Concernant les coroutines, la chose la plus courante que vous puissiez lire est cette phrase : "Les coroutines sont des threads en mode utilisateur".
Pour comprendre ce qu'est un « thread en mode utilisateur », vous devez d'abord comprendre ce qu'est un « thread en mode noyau ». Les threads d'état du noyau sont planifiés par le système d'exploitation. Lors du changement de contexte de thread, vous devez d'abord enregistrer le contexte du thread précédent, puis exécuter le thread suivant lorsque les conditions sont remplies, revenir au thread précédent et restaurer le contexte. Il en va de même pour les coroutines, sauf que les threads en mode utilisateur ne sont pas planifiés par le système d'exploitation, mais par les programmeurs, en mode utilisateur.
yield
这个关键字就是用来产生中断, 并保存当前的上下文的, 比如说程序的一段代码是访问远程服务器,那这个时候CPU就是空闲的,就用yield
让出CPU,接着执行下一段的代码,如果下一段代码还是访问除CPU以外的其它资源,还可以调用yield
Abandonnez le CPU. Continuez l'exécution, afin de pouvoir écrire du code asynchrone de manière synchrone.