Fiber: Keserentakan Koperatif
Jeda dan sambung semula pelaksanaan PHP dengan Fiber untuk corak seperti tak segerak.
Fiber: Keserentakan Koperatif ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Apakah Fiber?
PHP 8.1 memperkenalkan Fiber — korutin ringan yang boleh menjeda pelaksanaan pada titik tertentu dan disambung semula kemudian, sekali gus membolehkan multitugas secara kooperatif.
Fiber berbanding Tak Segerak
Fiber bukan thread selari — PHP masih menggunakan satu thread. Fiber membolehkan satu konteks pelaksanaan menyerahkan kawalan secara sukarela kepada konteks lain, lalu membolehkan corak seperti operasi tak segerak.
Mencipta Fiber
Cipta Fiber dengan menghantar nilai boleh panggil kepada pembinanya. Fiber tidak bermula sehingga anda memanggil start().
<?php
$fiber = new Fiber(function (): void {
echo "Fiber started\n";
$value = Fiber::suspend("first suspension");
echo "Resumed with: $value\n";
});
Memulakan dan Menangguhkan Fiber
start() menjalankan fiber sehingga Fiber::suspend() yang pertama. Nilai yang dihantar kepada suspend() dikembalikan oleh start().
<?php
$suspended = $fiber->start(); // runs until suspend()
echo $suspended; // "first suspension"
Menyambung Semula Fiber
resume($value) meneruskan fiber dari tempat ia ditangguhkan. Nilai yang dihantar kepada resume() dikembalikan oleh Fiber::suspend() di dalam fiber.
<?php
$fiber->resume("hello from main");
// Inside fiber: $value = "hello from main"
// Prints: "Resumed with: hello from main"Contoh Fiber Lengkap
Kitar hayat fiber yang lengkap: cipta, mula, tangguh, sambung semula, tamatkan.
<?php
$fiber = new Fiber(function (): string {
$x = Fiber::suspend("paused");
return "Fiber done, received: $x";
});
$msg = $fiber->start(); // "paused"
$fiber->resume("hi!");
echo $fiber->getReturn(); // "Fiber done, received: hi!"Kaedah Status Fiber
Semak keadaan fiber: isStarted(), isSuspended(), isRunning(), isTerminated().
<?php
var_dump($fiber->isTerminated()); // true after getReturn()Pengendalian Ralat dalam Fiber
Lontarkan pengecualian ke dalam fiber dengan $fiber->throw(new Exception(...)). Pengecualian itu muncul pada titik Fiber::suspend() di dalam fiber.
Integrasi Gelung Peristiwa
Fiber direka untuk menggerakkan gelung peristiwa (ReactPHP, Revolt), iaitu panggilan balik I/O ditangguhkan semasa menunggu dan disambung semula apabila data tiba.
Fiber berbanding Penjana
Penjana (PHP 5.5+) juga boleh berhenti seketika dengan yield, tetapi tujuan utamanya ialah untuk lelaran malas. Fiber ialah mekanisme korutin yang lebih umum, dengan penghantaran nilai dua hala dan nilai pulangan.
Kes Penggunaan Praktikal
Fiber menggerakkan: klien HTTP tanpa sekatan dalam Revolt, pertanyaan pangkalan data tak segerak, penjadual tugas koperatif dan penstriman saluran data tanpa kerumitan pelbagai utas.
Ringkasan
Fiber membolehkan satu konteks pelaksanaan PHP dijeda dan disambung semula, lalu membolehkan keserentakan koperatif. Fiber menjadi asas rangka kerja PHP tak segerak moden. Fiber::suspend() menyerahkan kawalan; resume() memulihkannya.
Semakan Pantas
Bagaimanakah anda menghantar nilai ke dalam Fiber yang ditangguhkan?
Pelajari PHP dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 49
- Pelajaran
- 195
Soalan Lazim
Adakah pelajaran “Fiber: Keserentakan Koperatif” percuma?
Ya — teks penuh “Fiber: Keserentakan Koperatif” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Fiber: Keserentakan Koperatif”?
Jeda dan sambung semula pelaksanaan PHP dengan Fiber untuk corak seperti tak segerak. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Fiber: Keserentakan Koperatif” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Ungkapan Match dan Argumen Bernama
- Operator Nullsafe dan Jenis Kesatuan
- Penghitungan (Enum)
- Fiber: Keserentakan Koperatif