Çocuklar, tekrar hoş geldiniz.
Şimdi bu kursun bir sonraki bölümü olan zamanlayıcıların serileştirilmesine geçiyoruz.
Dolayısıyla asenkron programlama dünyasında zamanlayıcılar, asenkron programlama dünyasındaki
en önemli ve kritik rollerden birini oynar.
Zamanlayıcılar, zamanlayıcı güdümlü programlama yapmamızı sağlar.
Örneğin, uygulamanızda veya programınızda, gelecekte
gerçekleştirilecek hesaplamayı zamanlamak istiyorsunuz.
Tamam.
Örneğin, şu andan itibaren beş saniye sonra
sisteminizden bazı ağ paketleri göndermek istiyorsunuz.
Tamam.
Yani gelecekte yapmanız gereken faaliyet tek seferlik olabilir.
Yani, bunu yalnızca bir kez yapmak veya periyodik olarak yapmak istersiniz.
Yani, her beş saniyede bir makinenizden ağ paketleri göndermek istiyorsunuz.
Bu nedenle zamanlayıcı kütüphanesinin çeşitli projelerde kullanımı oldukça yaygındır.
Bu bölümde ilk olarak Posix zamanlayıcı API'lerini öğreneceğiz.
Bu, Unix tabanlı sistemde desteklenen API kümesidir ve
Posix API'lerini kullanarak zamanlayıcıları nasıl uygulayacağımızı öğreneceğiz.
Yani kursun bu bölümünün yan faydası,
zamanlayıcılarla nasıl çalışacağınızı da öğrenecek olmanızdır.
Eğer zamanlayıcılarla ilk kez çalışacaksanız, bu zamanlayıcılarla nasıl çalışacağınızı öğrenmek
için bir fırsattır ve daha sonra STP projemizi öğreneceğimiz
zamanlayıcılarla entegre edeceğiz ve daha sonra problem ifadesini gerçekleştireceğiz.
Zamanlayıcıların STP projemizde istenmeyen eşzamanlılığı, istemediğimiz
eşzamanlılığı nasıl ortaya çıkardığını analiz edeceğiz.
Pekala, zamanlayıcılar doğası gereği eşzamanlılığı beraberinde getirir ve
uygulamanızı tek iş parçacıklı ve kilitsiz tutmak istiyorsanız,
zamanlayıcıların getirdiği bu istenmeyen eşzamanlılıkla başa çıkmanız gerekir.
Bu yüzden çözümü tartışacağız.
Zamanlayıcılar tarafından ortaya çıkarılan istenmeyen eşzamanlılıkla başa çıkmak
için geliştirdiğimiz olay döngüsü kütüphanemizi bu şekilde kullanacağız.
Tamam.
STP projemiz zamanlayıcıları desteklese bile, olay döngüsü kütüphanesi yardımıyla STP sürecimizin
mantıksal olarak tek iş parçacıklı kalacağını ve dolayısıyla kilitlenmeyeceğini göreceğiz.
Ve Unix platformunda desteklenen başka bir zamanlayıcı
kütüphanesine zaten aşina iseniz, onu kullanmaktan çekinmeyin.
Kısa bir süre sonra tanıtılacak olan zamanlayıcı kütüphanesini kullanmak zorunda olmanız gibi bir kısıtlama yoktur.
Zaten aşina olduğunuz herhangi bir zamanlayıcı kütüphanesini kullanabilirsiniz.
Bu yüzden bir sonraki ders videosunda,
kullanacağımız zamanlayıcı kütüphanesine aşina olalım.
Sadece projemizde kullanacağımız Timer kütüphanesi
tarafından sağlanan arayüz API'lerini tartışacağız.
Kursun bu bölümünde zamanlayıcıların iç
detaylarını veya uygulamalarını tartışmayacağız.
Bu kursun kapsamı dışındadır.
Kendimizi sadece zamanlayıcı oluşturmayı, zamanlayıcıyı silmeyi, zamanlayıcıyı nasıl yeniden planlayacağımızı
ve zamanlayıcılara dayanan işimizi nasıl yapacağımızı bileceğimiz noktaya kadar kısıtlayacağız.
Ancak zamanlayıcının herhangi bir iç detayını veya uygulamasını tartışmayacağız.