コルーチンを理解する方法とその応用シナリオは何ですか?ニアオ兄弟のいくつかの例を見ると、 関数でyield が使用されている場合、ブレーク ポイントは次のようになります。次回この関数を使用するときは、この中断ポイントから実行が開始されますが、私の理解が正しいかどうかはわかりません。 。アプリケーションのシナリオがどのようなものなのかわからない
プロセス、スレッド、コルーチンの理解
コルーチンに関して最もよく読まれるのは、「コルーチンはユーザーモード スレッドである」という文です。
「ユーザーモードスレッド」とは何かを理解するには、まず「カーネルモードスレッド」が何であるかを理解する必要があります。 カーネル状態のスレッドはオペレーティング システムによってスケジュールされます。スレッド コンテキストを切り替える場合は、まず前のスレッドのコンテキストを保存し、条件が満たされたら次のスレッドを実行し、前のスレッドに切り替えてコンテキストを復元する必要があります。 コルーチンにも同じことが当てはまりますが、ユーザー モード スレッドはオペレーティング システムではなくプログラマによってユーザー モードでスケジュールされる点が異なります。
yield这个关键字就是用来产生中断, 并保存当前的上下文的, 比如说程序的一段代码是访问远程服务器,那这个时候CPU就是空闲的,就用yield让出CPU,接着执行下一段的代码,如果下一段代码还是访问除CPU以外的其它资源,还可以调用yield CPU を放棄して実行を継続し、同期的な方法で非同期コードを作成できるようにします。
yield
プロセス、スレッド、コルーチンの理解
コルーチンに関して最もよく読まれるのは、「コルーチンはユーザーモード スレッドである」という文です。
「ユーザーモードスレッド」とは何かを理解するには、まず「カーネルモードスレッド」が何であるかを理解する必要があります。 カーネル状態のスレッドはオペレーティング システムによってスケジュールされます。スレッド コンテキストを切り替える場合は、まず前のスレッドのコンテキストを保存し、条件が満たされたら次のスレッドを実行し、前のスレッドに切り替えてコンテキストを復元する必要があります。 コルーチンにも同じことが当てはまりますが、ユーザー モード スレッドはオペレーティング システムではなくプログラマによってユーザー モードでスケジュールされる点が異なります。
yield
这个关键字就是用来产生中断, 并保存当前的上下文的, 比如说程序的一段代码是访问远程服务器,那这个时候CPU就是空闲的,就用yield
让出CPU,接着执行下一段的代码,如果下一段代码还是访问除CPU以外的其它资源,还可以调用yield
CPU を放棄して実行を継続し、同期的な方法で非同期コードを作成できるようにします。