Rumah > Artikel > rangka kerja php > Mengapakah coroutine swoole berbenang tunggal?
Dalam swoole, kerana pensuisan coroutine adalah bersiri, hanya satu coroutine boleh dijalankan pada masa yang sama Apabila satu coroutine sedang berjalan, coroutine lain akan berhenti berfungsi, jadi coroutine swoole Proses ini berdasarkan satu utas. .
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Swoole 4, komputer DELL G3
Ringkasnya, coroutine ialah utas ringan yang bekerjasama dengan sejajar yang lebih ringan yang dilaksanakan oleh pengaturcara yang dihoskan dalam utas
Apabila bilangan pengaturcara meningkat, orang besar terus meletup, sudah tentu, sesetengah orang mula berfikir bahawa benang tidak mudah digunakan, jadi apa yang perlu kita lakukan Sudah tentu, berdasarkan konsep benang, kita akan melaksanakan satu set benang ringan yang lebih ringan dan lebih baik untuk menipu bintang (sebenarnya, coroutine tidak boleh? Dianggap sepenuhnya sebagai benang, kerana benang boleh mempunyai berbilang coroutine)
Perbezaan antara coroutine dan benang
Essence
Keadaan kernel benang
Mod pengguna Coroutine
Kaedah penjadualan
Kaedah penjadualan urutan ialah penjadualan sistem Strategi penjadualan yang biasa digunakan termasuk penjadualan perkongsian masa dan penjadualan awalan. Secara terang-terangan, penjadualan urutan adalah di luar kawalan anda sepenuhnya
Kaedah penjadualan coroutine ialah penjadualan kolaboratif dan tidak dikawal oleh kernel dan ditukar oleh penjadualan dasar percuma
Sebagaimana disebutkan di atas, coroutine berada dalam mod pengguna Jadi apa yang dipanggil penjadualan kolaboratif boleh difahami secara langsung sebagai kaedah penjadualan yang ditulis oleh pengaturcara, iaitu, saya boleh menjadualkan bagaimana saya mahu tanpa dijadualkan melalui kernel sistem.
Pemahaman ringkas tentang coroutine swoole
Memandangkan kami merancang untuk memahami secara ringkas tentang coroutine swoole, kami mesti mengetahui model coroutine swoole.
Coroutine Swoole adalah berdasarkan satu utas. Dapat difahami bahawa penukaran coroutine adalah bersiri, dan hanya satu coroutine yang dijalankan pada masa yang sama
Coroutine Swoole adalah satu thread dalam pelaksanaan asas, jadi hanya terdapat satu coroutine yang berjalan pada masa yang sama. masa. Kerja, 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 Mengapakah coroutine swoole berbenang tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!