Async/Await: Fire and Forget vs. Menunggu untuk Selesai
Memahami interaksi antara fungsi pemanggil dan fungsi tak segerak yang dipanggil adalah penting untuk kod yang cekap dan betul. Mari kita periksa pendekatan yang berbeza:
Senario 1: Kebakaran dan Lupakan (Mudah): Fungsi yang dipanggil (Callee) dimulakan tetapi penyelesaiannya tidak diendahkan oleh pemanggil (Pemanggil). Pemanggil meneruskan serta-merta.
Senario 2: Menunggu Selesai: Pemanggil dengan jelas menunggu Penelepon selesai sebelum meneruskan pelaksanaan.
Sekarang, mari perkenalkan kerumitan kumpulan benang:
Senario 3: Api dan Lupakan pada ThreadPool Thread: Callee berjalan pada thread pool, tetapi Pemanggil mengabaikan status penyelesaiannya.
Senario 4: Menunggu Selesai pada ThreadPool Thread: Pemanggil dengan sabar menunggu Callee selesai, walaupun ia berjalan secara tidak segerak pada thread pool.
Akhir sekali, mari kita pertimbangkan kesan async
kata kunci:
Senario 5: Api dan Lupakan dengan Async pada ThreadPool Thread: Serupa dengan Senario 3, tetapi Callee diisytiharkan async
, namun penyempurnaannya masih diabaikan.
Senario 6: Menunggu Penyelesaian dengan Async pada ThreadPool Thread: Pemanggil menggunakan await
untuk memastikan pemanggil selesai sebelum meneruskan, walaupun semasa Callee berjalan pada benang pool thread. Ini adalah pendekatan yang paling mantap.
Atas ialah kandungan terperinci Api dan Lupakan lwn. Menunggu dalam Async/Await: Bilakah Anda Perlu Menunggu Tugasan Async Selesai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!