Dalam swoole, coroutine boleh digunakan untuk perkhidmatan konkurensi tinggi Kadar toleransi kesalahan perkhidmatan menggunakan mod coroutine akan meningkat dengan banyak Kegagalan antara muka tertentu tidak akan menyebabkan perkhidmatan itu ranap untuk pemesejan segera dan sembang , yang boleh memastikan komunikasi tidak disekat sepenuhnya dan setiap mesej boleh diproses dengan segera.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Swoole 4, komputer DELL G3
Senario terpakai untuk coroutine
Perkhidmatan konkurensi tinggi, seperti sistem jualan kilat, antara muka API berprestasi tinggi dan pelayan RPC menggunakan mod coroutine, kadar toleransi kesalahan perkhidmatan akan meningkat dengan banyak, dan beberapa antara muka mungkin Sekiranya berlaku kegagalan, keseluruhan perkhidmatan tidak akan runtuh.
Perangkak boleh mencapai keupayaan serentak yang sangat besar dan boleh menggunakan lebar jalur dengan cekap walaupun dalam persekitaran rangkaian yang sangat perlahan.
Perkhidmatan komunikasi segera, seperti sembang IM, pelayan permainan, Internet of Things, pelayan mesej, dll., boleh memastikan komunikasi mesej tidak disekat sepenuhnya dan setiap paket mesej boleh diproses serta-merta.
Apakah itu coroutine?
Coroutine juga dipanggil urutan mod pengguna, yang bertukar melalui kerjasama dan bukannya preemption. Berbanding dengan proses atau rangkaian, semua operasi coroutine boleh diselesaikan dalam mod pengguna dan kos penciptaan dan penukaran adalah lebih rendah. Coroutine ialah pelengkap kepada proses, atau hubungan pelengkap.
Untuk memahami maksud "benang mod pengguna", anda mesti memahami dahulu 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 benang mod pengguna tidak dijadualkan oleh sistem pengendalian, tetapi oleh pengaturcara, yang dipanggil benang mod pengguna.
Perbezaan antara coroutine dan thread
Coroutine Swoole adalah satu thread dalam pelaksanaan asas, jadi hanya satu coroutine berfungsi pada masa yang sama, dan pelaksanaan coroutine adalah bersiri. Ini berbeza daripada urutan berbilang akan dijadualkan oleh sistem pengendalian kepada berbilang CPU untuk pelaksanaan selari.
Semasa satu coroutine sedang berjalan, coroutine lain akan berhenti berfungsi. Coroutine semasa akan tergantung apabila melakukan operasi menyekat IO dan penjadual asas akan memasuki gelung acara. Apabila peristiwa penyiapan IO berlaku, penjadual asas menyambung semula pelaksanaan coroutine yang sepadan dengan acara tersebut.
Penggunaan berbilang teras CPU masih bergantung pada mekanisme berbilang proses enjin Swoole.
Pembelajaran yang disyorkan: tutorial swole
Atas ialah kandungan terperinci Apakah yang boleh dilakukan oleh coroutine swoole?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!