Permintaan Serentak lwn. Selari dalam FastAPI
Dalam FastAPI, terdapat salah tanggapan umum tentang sebab titik akhir async def tidak sentiasa menjalankan permintaan dalam selari. Tingkah laku ini bukan disebabkan oleh reka bentuk FastAPI tetapi lebih berkaitan dengan cara FastAPI menggunakan pengaturcaraan tak segerak.
Apabila menggunakan titik akhir def, FastAPI menjalankannya secara serentak dalam urutan yang berasingan, membolehkan konkurensi. Walau bagaimanapun, titik akhir async def lazimnya dilaksanakan secara terus dalam gelung peristiwa, memastikan kedua-dua keselarasan dan keselarian apabila kod berinteraksi dengan operasi I/O tak segerak.
Kod Segerak lwn. Tak Segerak dalam FastAPI
FastAPI menyokong kod tak segerak melalui async def, yang membenarkan kawalan untuk dihantar kembali ke gelung acara menggunakan await. Keupayaan ini membolehkan operasi tidak menyekat, seperti menunggu data daripada klien atau respons pangkalan data. Walau bagaimanapun, jika tugasan segerak, seperti time.sleep(), digunakan dalam titik akhir async def, ia menyekat gelung acara dan akhirnya pelayan, menghasilkan pemprosesan permintaan yang berurutan.
Treadpool Luaran
Untuk memastikan tugas menyekat tidak menghalang gelung peristiwa, FastAPI menggunakan kumpulan benang luaran, yang menjalankan tugas yang ditakrifkan dengan def pada utas berasingan dan menunggunya sebelum menyambung semula pelaksanaan gelung acara. Pendekatan ini mencapai keselarasan untuk titik akhir def, walaupun ia bukan selari sebenar.
Amalan Terbaik
Atas ialah kandungan terperinci Serentak vs. Selari: Bagaimana FastAPI Mengendalikan Permintaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!