Şimdi kaç çeşit zamanlayıcı olduğunu tartışalım.
Yani temel olarak üç tür zamanlayıcı vardır:
kısa zamanlayıcılar, periyodik zamanlayıcılar ve üstel zamanlayıcılar.
Şimdi bunların her biri hakkında kısaca konuşmama izin verin.
Yani yalnızca bir kez ateşlenen veya tetiklenen kısa zamanlayıcı kartları.
Örneğin, uygulamanız 10 saniye sonra bazı eylemleri silmek istiyor.
Değil mi? Böylece zamanlayıcınız tetiklenecek ve
10 saniye sonra zamanlayıcınız ateşlenecek ve
uygulamadan bazı veri yapılarını silecektir.
Değil mi? Başka bir örnek de 10
saniye sonra bir sonlandırma isteği göndermek olabilir.
Yani bu zamanlayıcılara kısa zamanlayıcılar denir çünkü sadece bir
kez tetiklenirler ve ateşlenirler, değil mi? Zamanlayıcılarınız, uygulamanızın gelecekte
yalnızca bir kez bazı yürüyüşler yapması gereken senaryolarda kullanıldığında.
Doğru.
Bunun aksine, periyodik zaman aşımları, bazı olayların
gelecekte periyodik olarak tetiklenmesi gereken durumlardır.
Değil mi? Örneğin, beş saniyelik
aralıklarla bazı hallow paketleri gönderecek
bir uygulama yazmak istiyorsunuz.
Doğru.
Örneğin, zamanlayıcı zamanını sıfıra eşit olacak şekilde planlar ve başlatırsınız.
Sonra molada, kolay.
Başvurunuzu yapacağınız yer size bir merhaba paketi gönderecektir.
Daha sonra, T dönüşe eşit olduğunda, uygulamanız tekrar başka bir paket gönderir ve bu böyle devam eder.
Dolayısıyla, düzenli zaman aralıklarında periyodik olarak ateşlenen bu tür zaman aşımlarına
periyodik zamanlayıcılar, zaman aşımlarının üstel geri dönüşü veya zamanlayıcının üstel olarak
memnun bir şekilde tetiklendiği periyodik zaman aşımlarının özel bir durumu denir.
Geçici panjurlar örneği, uygulamanızın zamanda bir yeniden deneme olayı göndermesini istediğinizde, bunu yapmak için
dört, sekiz, 16, 32, 64 ve benzeri zamanlara gitmek için zamanı olan birine eşittir.
Doğru.
Dolayısıyla, periyodik zamanlayıcılar gibi düzenli aralıklar kullanmak yerine, zamanlayıcıların üstel arkası, olayları göndermek
veya tetiklemek için zaman uzayı içinde üstel olarak memnun zamansal noktaları kullanır.
Bu nedenle TGP, hangi kullanıcıların üstel yedekleme algoritmasına bağlı olduğu iyi bilinen bir
protokoldür ve yedekleme algoritmasını uygulamak için üstel ve geri çekilme zamanlayıcılarını kullanır.
Bu yüzden zamanlayıcılar oluşturmak için Linux'un dahili API'lerini kullanacak ve
yukarıda listelenen üç tür zamanlayıcıyı da uygulamak için araçlar kullanacaktık.
Doğru.
Linux destekli bu uygulamalar bize bir zamanlayıcının nasıl uygulanacağına ilişkin temel bilgileri sağlayacaktır.
Daha sonra, geliştiriciye zamanlayıcılar üzerinde tam kontrol sağlayacak olan
zaman veya kütüphaneyi tasarlamak için buradan yola çıkacağız.