Middle
Asenkron programlama (async) nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Asenkron programlama, programın ana yürütme akışını engellemeden aynı anda birden fazla görevi yerine getirmeye olanak tanıyan bir paradigmadır. Bu, bekleme sürelerinin verimli kullanılmasıyla (örneğin, giriş/çıkış işlemleri sırasında) sağlanır.
Ana kavramlar:
- Koruynlar: Yürütmeyi duraklatıp daha sonra devam ettirebilen özel fonksiyonlar.
async defile tanımlanır. - Olay Döngüsü: Koruynların yürütülmesini yöneten ana düzenleyici, olayları izler ve biri bekliyorsa görevler arasında geçiş yapar.
- await: Bir koruynun yürütmesini, beklenen işlemin tamamlanmasına kadar duraklatmak için anahtar kelime (örneğin, başka bir koruyn çağırmak veya I/O sonucu beklemek).
Örnek:
// Asenkron fonksiyon örneği
import asyncio
async def fetch_url(url):
print(f"İndirmeye başlıyor: {url}")
await asyncio.sleep(2) // Uzun bir işlemin (örneğin, ağ isteği) simülasyonu
print(f"İndirme tamamlandı: {url}")
async def main():
# Koruynlardan görevler oluştur
task1 = asyncio.create_task(fetch_url("http://example.com/page1"))
task2 = asyncio.create_task(fetch_url("http://example.com/page2"))
# Her iki görevin tamamlanmasını bekle
await task1
await task2
// Olay döngüsünü başlat
if __name__ == "__main__":
asyncio.run(main())
Avantajlar:
- Performans artışı: Özellikle I/O-bağlı görevler (ağ istekleri, dosya işlemleri) için.
- Kaynakların daha iyi kullanımı: Birden fazla iş parçacığı veya süreç oluşturulmaz, bu da ek maliyetleri azaltır.
- Yanıt verebilirliği koruma: Ana akış engellenmez, bu da etkileşimli uygulamalar veya sunucular için önemlidir.
Asenkron programlama şu durumlar için uygundur:
- Web sunucuları (örneğin,
asyncioveyaFastAPIkullanılarak). - Web sitelerinin kazıma işlemleri.
- Veritabanlarıyla çalışma.
- Dış kaynakları bekleyen herhangi bir görev.