Rumah > Artikel > pembangunan bahagian belakang > Pengaturcaraan tak segerak Python: Mendedahkan intipati pengaturcaraan tak segerak, dari kemasukan kepada penguasaan
.
Semua masalah dengan kod rangkaian boleh diselesaikan melalui asynchronous io
Anda tidak faham dengan betul bahawa kami perlu memproses data padaSocket, kerana jika kita perlu menunggu data soket, kita boleh menggunakan IO asynchronous , kita boleh menyemak soket sebelum memanggil kaedah socket() Sama ada ia boleh digunakan untuk menghantar data, tidak perlu menunggu respons kembali kepada kami, kerana gelung tafsiran python ialah kita boleh memulangkan soket. objek serta-merta selepas menggunakan kaedah socket() sendiri, dan kemudian apabila kami menyemak sama ada soket boleh menghantar data, jika boleh, kami menggunakan kaedah send() untuk menghantar data Memerlukan sokongan soket Oleh kerana kami menggunakan soket, kami perlu lebih maju Kami perlu memastikan bahawa versi Python menggunakan modul soket kerana ini adalah blok binaan asas kami dalam perpustakaan standard python kerana modul soket memastikan kami boleh bekerja pada mana-mana sistem pengendalian yang menyokong soket Kami juga Modul soket diperlukan untuk memastikan bahawa kami boleh bekerja pada mana-mana sistem pengendalian yang disokong soket Kami juga memerlukan modul soket untuk memastikan modul soket hanya boleh digunakan apabila membuat sambungan soket sebenar . Tetapi jangan risau ini tidak akan berlaku kerana gelung penterjemah Python akan memastikan modul soket sentiasa tersedia
Soket tak segerakKami telah melihat mengapa kami memerlukan sokongan soket Sekarang mari lihat bagaimana soket boleh membantu kami dalam tugasan kami Seperti contoh pertama yang kami ketengahkan sebelum ini, kami mesti mengarahkan gelung penterjemah Python untuk melihat sama ada soket tersedia sebelum anda memproses soket. operasi data. kerana kita tidak perlu menunggu respons untuk kembali kepada kita kerana gelung tafsiran Python akan memastikan modul soket sentiasa tersedia gelung akan memastikan modul soket sentiasa tersedia
async dan tunggu
Gelung tafsiran Python mempunyai dua kaedah terbina dalam tak segerak dan await async mewakili tugas tak segerak Sebagai contoh, dalam contoh di atas, kita boleh menunggu sehingga sambungan selesai dan bukannya mewujudkan sambungan dengan segera kaedah terbina dalam menanti yang bertanggungjawab untuk kerja sebenar Untuk fungsi menunggu seperti contoh di atas, kita perlu memanggil kaedah connect() untuk melakukan kerja sebenar
. ContohContoh berikut menunjukkan cara menggunakan asyncio untuk membuat sambungan soket
import socket import selectors async def connect(): sock = socket() sock = sock() sel = selectors() sel = sel() sel = sel() sel = sel() sel = sel() sel = sel()
Ringkasan IO tak segerak ialah cara untuk membantu kami melaksanakan operasi soket tanpa menunggu respons kembali kepada kami Kaedah ini menggunakan kaedah pemilih untuk memanggil kaedah connect() secara tidak segerak dan kemudian menunggu keputusan kembali melalui tunggu sebelum melakukan yang lain. kerja
Atas ialah kandungan terperinci Pengaturcaraan tak segerak Python: Mendedahkan intipati pengaturcaraan tak segerak, dari kemasukan kepada penguasaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!