Async Programlama Nedir? (Bir İzmirli’nin Gözünden)
Geçen gün arkadaşlarla kafede oturuyoruz. Herkes telefonuna dalmış, ben de “Haydi bir şaka yapayım” diye düşündüm. Telefonu elime aldım, “Arkadaşlar, size bir şey göstereceğim ama önce biraz bekleyin, çünkü bu şey async programlama gibi” dedim.
Tabii herkes şaşkın bakışlarla bana baktı, bir tek ben güldüm. O an fark ettim ki, async programlama, hayatımda pek çok şeyi açıklayan ama kimsenin tam olarak ne olduğunu bilmediği bir konu gibi. Gelin, biz bunu biraz açalım.
Async Programlama: “Bekle, Ben Şu İşlemi Yapayım”
Async programlama nedir? Düşünün ki hayatınızda birden fazla iş yapmanız gerekiyor, ama bu işler sırayla yapılmak zorunda değil. “Her işin sırası var!” diye düşünen biriyseniz, async programlama sizi biraz zorluyor olabilir. Çünkü async programlama, işlemleri sırayla yapmanıza gerek kalmadan, paralel bir şekilde gerçekleştirmenizi sağlar. Bu da, birkaç işi aynı anda yapmaya benzer.
Bunu, bir kafe örneğiyle açıklayalım: Kafede çalışan garsona bir şey söylüyorsunuz. Garson hemen gitmeden önce “Bekle, önce bir şey yapmam lazım” demiyor. Diğer siparişleri almaya gidiyor, sonra sizin siparişinizi getiriyor. Yani işlerin sırayla yapılmadığı, birbiriyle zaman zaman kesişen bir durum söz konusu. İşte async programlama da tam olarak böyle bir şey!
Async Programlama: Günlük Hayatla Karşılaştırma
Şimdi şöyle bir düşünün: Sabah kalktınız, kahvaltı hazırlayacaksınız ama aynı zamanda çamaşır makinesini de çalıştırmanız gerek. Normalde, sırayla yaparsanız, önce kahvaltıyı hazırlarsınız, sonra makineyi açarsınız, değil mi? Ama async programlama olsaydı, aynı anda kahvaltıyı yaparken çamaşır makinesini de çalıştırabiliyor olurdunuz.
Daha fazla kafa karıştırıcı olmasın diye şöyle özetleyeyim: Async programlama, size paralel işler yapma yeteneği verir, her şey sırayla yapılmak zorunda değildir. Ama bunun “ne kadar güzel” olduğunu anlamak için biraz kafayı dağıtmak lazım.
Async Programlama’da Başınıza Neler Gelebilir?
Bunu bir arkadaşım üzerinden anlatayım. Bir gün arkadaşım Mehmet, “Ya sen bana niye mesaj atıyorsun?” diye sordu. Cevap verdim: “Çünkü ben yazdım, mesajı bekliyorum ama sen hala yazmadın.” Beni anlayamayan Mehmet şu cevabı verdi: “Ama o sırada ben başka şeyler yapıyordum!”
Async programlama bu! Sizin mesajı yazmanız, mesajı almanızla eş zamanlıdır. Sen yazarken, diğeri de okur. Ama bu süreç, birinin yazmasını beklemeden diğerinin de aktif olabilmesi için “bekle” değil “işlem yap” diyor. Şimdi düşünün, hayatımızda bu kadar beklemek zorunda olmasaydık, ne kadar işler hızlanırdı. İşte async programlama da aslında bunu sağlıyor. “Beklemeye gerek yok, işini yaparken ben de senin işini yapabilirim” diyor.
Bir Şeyin Beklenmesi Ne Kadar Zor Olabilir Ki?
Geçenlerde telefonuma bir mesaj geldi: “Alo, nasılsın?” O kadar “Alo” dedikten sonra hemen cevap geldi ki, ekranda “yazıyor” kısmı bir süre dönüp duruyordu. İki saniye sonra, bir şey yazan kişi silip tekrar yazmaya başladı.
Ve içimden: “Async programlama nedir?” diye düşündüm. Evet, bir yerde beklemek zorunda kalmamalısın ama bir de “yazmanın” öncesinde de bekleme kısmı var. Sonuçta async bir iş yapıyorsan, “işin bitmeden bir şey söylememe” döngüsü de bir zaman yaratır.
Async Programlamanın Gücü
Async programlamanın hayatımıza kattığı en büyük şey zaman kazancı! Gerçekten de, çoğu programda beklemeyi en aza indirerek daha hızlı işlem yapabilmek çok önemli. Peki, bunu günlük hayatta nasıl kullanabiliriz? Mesela, sabah işe gitmek için tren beklerken aklınıza gelen “bugün yapmam gereken işleri” sırasıyla değil de, baştan sona halletmeye başlayabilirsiniz. Tabii ki gerçek hayatın async programlaması biraz daha karmaşık olsa da, yine de işlerinizi sırasız yapmak, size bir çeşit verimlilik sağlayacaktır.
Bir de, hatırlatmakta fayda var: Async programlama, işler arasında geçiş yapmayı kolaylaştırırken, paralel çalıştığı için bazen “daha hızlı” olabilir. Ama bazen de işlemlerin sırasını ve bağlantısını karıştırarak zorluk çıkartabilir. Mesela, yemek yaparken aynı anda beş farklı şeyi yapmak, bazen birinin yanmasına veya diğerinin çiğ kalmasına yol açabilir.
Sonuç Olarak: Async Programlama, Hayatımıza Bir Adım
Düşünsenize, gerçekten paralel dünyada yaşıyor olsaydık, her şey bir anda yapılabilir miydi? İşte async programlama, hayatımızda işleri daha hızlı yapmak için tasarlanmış ama bazen karmaşaya neden olabilen bir teknoloji. Zamanı verimli kullanmak, işlerinizi paralel şekilde yapmak ve beklememek istiyorsanız, async programlamanın gücünü keşfetmelisiniz. Ama unutmayın, bazen biraz sıraya girip sakin olmak da işlerinizi kolaylaştırabilir!