Memandangkan permintaan aplikasi web moden terus meningkat, pembangun perlu mengendalikan lebih banyak permintaan dan data. Apabila berhadapan dengan situasi ini, perubahan kawalan proses dalam PHP menjadi topik penting.
Kawalan proses tukar membolehkan aplikasi PHP mengelak daripada menyekat apabila memproses tugas yang panjang. Sebagai contoh, apabila program perlu menyelesaikan pertanyaan pangkalan data yang kompleks atau tugas pemprosesan data yang besar, ia mungkin mengambil masa beberapa saat atau minit untuk diselesaikan. Pada masa ini, permintaan lain mesti menunggu tugasan ini selesai.
Untuk mengelakkan situasi ini, PHP menyediakan mekanisme yang dipanggil kawalan proses perubahan. Mekanisme ini membolehkan aplikasi PHP menyerahkan kawalan kepada proses atau utas lain apabila memproses tugasan yang berjalan lama, supaya proses atau utas ini boleh menduduki CPU dan sumber yang tinggal.
Dalam PHP, kawalan proses perubahan boleh dicapai menggunakan pelbagai teknik. Di bawah ini kami akan memperkenalkan beberapa daripada mereka.
Model berbilang proses dalam PHP dilaksanakan melalui fungsi fork. Fungsi fork menyalin proses induk untuk mencipta proses anak baharu. Proses induk dan proses anak berkongsi segmen kod dan segmen data, tetapi mempunyai persekitaran pelaksanaan bebas semasa masa jalan.
Apabila aplikasi PHP perlu melaksanakan tugas jangka panjang, anda boleh menggunakan fungsi fork untuk mencipta sub-proses baharu untuk menjalankan tugas. Proses induk boleh terus memproses permintaan lain dalam tempoh ini.
Model berbilang benang dalam PHP dilaksanakan melalui sambungan pthread atau sokongan berbilang benang terbina dalam selepas PHP 7.2.
Dalam model berbilang benang, aplikasi PHP boleh mencipta berbilang rangkaian untuk melaksanakan tugas yang berbeza secara serentak, dengan itu mengambil kesempatan daripada CPU berbilang teras. Setiap utas mempunyai persekitaran pelaksanaannya sendiri, tetapi mereka boleh berkongsi timbunan dan pembolehubah statik global.
Aplikasi PHP juga boleh menggunakan model tidak menyekat tak segerak untuk melaksanakan kawalan proses perubahan. Dalam model ini, daripada menunggu sementara permintaan dilaksanakan, aplikasi boleh mendaftarkan fungsi panggil balik yang akan dipanggil apabila tugasan selesai.
PHP sudah pun menyokong sambungan dan pustaka berkaitan untuk model tidak menyekat tak segerak, seperti ReactPHP dan Swoole.
Ringkasan
Kawalan proses perubahan menjadi semakin penting dalam aplikasi web moden. PHP menyediakan pelbagai kaedah pelaksanaan, termasuk model berbilang proses, model berbilang benang dan model tidak menyekat tak segerak. Pembangun boleh memilih teknologi yang paling sesuai untuk melaksanakan kawalan proses perubahan berdasarkan keperluan aplikasi dan keperluan prestasi.
Atas ialah kandungan terperinci Tukar kawalan proses dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!