Middle
Python'da korutina nima?
sobes.tech AI
AIdan javob
Koruin — bu umumiylashtirish bo‘lib, u to‘xtatib va qayta boshlash mumkin bo‘lgan, holatini saqlab qoladigan kichik dasturlardir. Oddiy funksiyalardan farqli o‘laroq, ular bir chaqiruvda oxirigacha bajariladigan o‘rindosh funksiyalar bo‘lib, ular boshqa korutinaga yoki asosiy voqea tsikliga "kontrolni berishi" va keyin uni o‘sha joydan "qabul qilishi" mumkin.
Python’da korutinlar async def va await kalit so‘zlari yordamida amalga oshiriladi.
Asosiy xususiyatlar:
- To‘xtatish va qayta boshlash: Ular o‘z bajarilishini (
await) to‘xtatishi va keyinchalik qayta boshlashi mumkin. - Holatni saqlash: To‘xtatilgandan so‘ng, ular o‘zining lokal o‘zgaruvchilari holatini va bajarilish joyini saqlab qoladi.
- Aniq boshqaruv: Boshqaruv o'tkazish aniq
awaityordamida amalga oshiriladi. - Tarmoq yoki jarayonlarsiz bloklamasdan kirish/chiqish: Ko‘pincha, tarmoq so‘rovlar kabi bloklamasdan kirish/chiqish operatsiyalarini bajarish uchun ishlatiladi.
Sintaksis:
// Asinxron funktsiya (korutin) ta'rifi
async def my_coroutine():
print("Korutinaning boshlanishi")
await some_async_operation() // Asinxron operatsiya tugashini kutish
print("Kutishdan keyingi korutina davomiyligi")
// Korutinaning chaqirilishi
import asyncio
async def main():
await my_coroutine() // Korutinaning bajarilishi
# Asosiy voqea tsikligini ishga tushirish
asyncio.run(main())
Afzalliklar:
- Ishlash samaradorligi: Kutish bilan bog‘liq vazifalar uchun (masalan, I/O Bound) tizim resurslarini samaraliroq ishlatadi.
- O‘qilishi:
async/awaitsintaksisi asinxron kodni sinxron kodga yaqinlashtiradi va o‘qishni yaxshilaydi. - Raqobat: Threadlarni boshqarish murakkabliksiz, vazifalarni osongina raqobatli bajarishga imkon beradi.
Korutinalar Python’da asinxron dasturlashning muhim qismidir va asyncio, aiohttp va FastAPI kabi frameworklarda ishlatiladi.