Asinxron Proqramlaşdırmanın Əsas Anlayışları
Asinxronluq proqramlaşdırmada performansı artırmaq və zaman itkisini azaltmaq üçün istifadə olunan bir yanaşmadır. Əsas məqsədi bir neçə işi eyni anda və ya minimum gözləmə ilə icra etməkdir. Bu yanaşma xüsusilə I/O əməliyyatlarında təsirli olur, çünki bu əməliyyatlar vaxt aparır və sistem resurslarını blok edə bilir.
Node.js-də bu məsələyə 'Event Loop' ilə yanaşılır. Event loop, bir tapşırığın tamamlanmasını gözləyərkən digər tapşırıqların icrasını davam etdirən bir mekanizmadır. Node.js bu yanaşma ilə yalnız bir prosesdən istifadə edir və bu da JavaScript'in tək iplik əsaslı işləməsinə imkan yaradır.
Python'da 'asyncio' modulu asinxronluğu təmin edir. Bu modul, 'coroutine'lər ilə çalışır. 'Coroutine'lər çoxlu tapşırıqların növbə ilə icra edilməsinə imkan verən funksiyalardır. Beləliklə, sistem resursları daha optimal istifadə olunur.
Go dilində isə 'goroutine'lərdən istifadə olunur. Goroutine, yüngül parallel proseslərdir. Go runtime, bu goroutine'ləri avtomatik olaraq mövcud CPU resurslarına paylayır, bu da performans üstünlüyü yaradır.
Bloklayan və bloklamayan I/O-nun fərqi isə burada önə çıxır. Bloklayan I/O əməliyyatı bir tapşırığı yerinə yetirdiyi müddətdə digər tapşırıqlar dayandırılır və ya yavaşıyır. Bloklamayan I/O isə gözləmə vaxtı olmadan digər əməliyyatları yerinə yetirir. Asinxron proqramlaşdırma daha tez və səmərəli nəticələr almağa imkan yaradır.