Bagaimana untuk memahami coroutine dan apakah senario aplikasinya?
Melihat beberapa contoh daripada Brother Niao, pemahaman saya ialah apabila hasil digunakan dalam fungsi, titik putus akan menjadi dijana di sana. Kali seterusnya anda menggunakan fungsi ini, ia akan mula berjalan dari titik gangguan ini, tetapi saya tidak tahu sama ada pemahaman saya betul. . Saya tidak tahu bagaimana senario aplikasi itu
Pemahaman proses, benang dan coroutine
Berkenaan coroutine, perkara yang paling biasa anda baca ialah ayat ini: "Coroutines ialah utas mod pengguna".
Untuk memahami apa itu "benang mod pengguna", anda mesti terlebih dahulu memahami apa itu "benang mod kernel". Urutan keadaan kernel dijadualkan oleh sistem pengendalian Apabila menukar konteks benang, anda mesti menyimpan konteks urutan sebelumnya, dan kemudian melaksanakan urutan seterusnya Apabila syarat dipenuhi, tukar kembali ke urutan sebelumnya dan pulihkan konteks. Perkara yang sama berlaku untuk coroutine, kecuali urutan mod pengguna tidak dijadualkan oleh sistem pengendalian, tetapi oleh pengaturcara, dalam mod pengguna.
yield
这个关键字就是用来产生中断, 并保存当前的上下文的, 比如说程序的一段代码是访问远程服务器,那这个时候CPU就是空闲的,就用yield
让出CPU,接着执行下一段的代码,如果下一段代码还是访问除CPU以外的其它资源,还可以调用yield
Lepaskan CPU Teruskan pelaksanaan, supaya anda boleh menulis kod tak segerak dengan cara yang segerak.