MERHABA! • 1995 programlama ile tanışma • 1998 yılından itibaren PHP • 1999 yılından itibaren iş hayatı • 1998 (ya da 1999) yılından itibaren ögrenci • Kurucu Ortak & Yazılım Uzmanı @ Yazılım Parkı • Yazılım Uzmanı @ İ. D. Bilkent Üniversitesi Fotoğraf: Onur Canalp
NEREDE ASENKRON? • Web Dosya (video, PDF, imaj) işleme, e-posta gönderme • CLI (Command Line Interface) Çoklu dosya indirme, ağ servisleri, her türlü ağır iş
NASIL ASENKRON? - WEB • İşleri kuyruğa sok (queue). • Arka planda kuyrukları çalıştır (worker/consumer). • İşin durumunu aralıklarla sor (AJAX) Ya da o sana söylesin (WebSocket)
NON-BLOCKING? • Blocking Kipi Programın işleyişi işlemler (I/O, bağlantı kurma/ kabul etme gibi) bitene kadar bekler. • Non-Blocking Kipi İşlemler anında yanıt döner. Bittiğinde programa haber/sinyal verilir. PHP’de işlemler aksi belirtilmedikçe BLOCKING (işlemin bitmesi beklenir)
COROUTINE? • Tamamen bitmeden adımlardan geri dönüş alma • Kanal (channel) aracılığı ile haberleşme (IPC) • AKA: Fiber, lightweight thread • Jonglörün topları çevirmesi Araya girilebilen, (genellikle) asenkron çalışan fonksiyonlar.
KISS Asenkron Programlama • Ayrı bir “thread” veya “process” ile uygulanmış olabilir. • Tek “process” ile event loop üzerinde uygulanmış olabilir. • Uygulama detayları kullanıcıdan soyutlanır (kullanımı basitleştirilir, coroutine, async/ await).