Java Timer, TimerTask, Örnekli Hatırlatma Sınıfı Eğitimi

Yayınlanan: 2021-02-04
Java Timer, TimerTask, Örnekli Hatırlatma Sınıfı Eğitimi

java.util.Timer , gelecekte belirli bir zamanda yürütülecek bir iş parçacığını programlamak için kullanılabilecek bir yardımcı program sınıfıdır. Java Timer sınıfı, bir görevi tek seferlik veya düzenli aralıklarla çalıştırılacak şekilde programlamak için kullanılabilir.

java.util.TimerTask , Runnable arabirimini uygulayan soyut bir sınıftır ve Java Timer sınıfı kullanılarak planlanabilen kendi TimerTask'ımızı oluşturmak için bu sınıfı genişletmemiz gerekir.

Timer sınıfı iş parçacığı için güvenlidir ve birden çok iş parçacığı, harici senkronizasyona gerek kalmadan tek bir Timer nesnesini paylaşabilir. Timer sınıfı, belirli düzenli aralıklarla görevler eklemek için Java.util.TaskQueue kullanır ve herhangi bir zamanda TimerTask'ı çalıştıran yalnızca bir iş parçacığı olabilir, örneğin, her 10 saniyede bir çalışacak bir Zamanlayıcı oluşturuyorsanız ancak tek iş parçacığı yürütmesi 20 saniye sürüyorsa, daha sonra Timer nesnesi kuyruğa görevler eklemeye devam edecek ve bir iş parçacığı biter bitmez kuyruğa bildirecek ve başka bir iş parçacığı yürütülmeye başlayacaktır.

Java Zamanlayıcı Sınıfı

Timer sınıfı, görevleri zamanlamak için Object wait ve notify yöntemlerini kullanır. TimerTask abstract class ve somut uygulama sağlamak için onu devralırız. TimerTask sınıfı, Runnable interface implements , bu nedenle bir iş parçacığıdır ve bu nedenle TimerTask uygulamanız da bir iş parçacığıdır.

Çok basit Zamanlayıcı ve ZamanlayıcıGörevi Örnek: Görev, 5 seconds geçtikten sonra yürütülür.

Sonuç:

Bu basit program, bir zamanlayıcı iş parçacığı tarafından yürütülecek bir görevi uygulamanın ve zamanlamanın aşağıdaki temel bölümlerini gösterir:

  • TimerTask özel bir alt sınıfını uygulayın. run yöntemi, görevi gerçekleştiren kodu içerir. Bu örnekte, alt sınıf CrunchifyReminder olarak adlandırılmıştır.
  • Timer sınıfını başlatarak bir iş parçacığı oluşturun.
  • TimerTask nesnesini örnekleyin ( new CrunchifyReminder() ).
  • Yürütme için zamanlayıcı görevini zamanlayın.

Bu TimerTask'ı Tekrar Tekrar Nasıl Gerçekleştirebilirim?

Sonuç:

Varsayılan olarak, bir program, zamanlayıcı dizileri çalıştığı sürece çalışmaya devam eder. Bir zamanlayıcı dizisini dört şekilde sonlandırabilirsiniz:

  • Zamanlayıcıda cancel çağırın. Bunu, bir zamanlayıcı görevinin run yöntemi gibi programın herhangi bir yerinden yapabilirsiniz.
  • Zamanlayıcıyı şu şekilde oluşturarak zamanlayıcının iş parçacığını bir "arka plan programı" yapın: new Timer(true) . Programda kalan tek iş parçacığı daemon iş parçacığı ise, programdan çıkar.
  • Zamanlayıcının tüm zamanlanmış görevlerinin yürütülmesi tamamlandıktan sonra, Timer nesnesine yapılan tüm başvuruları kaldırın. Sonunda, zamanlayıcının iş parçacığı sona erecektir.
  • Tüm programın (ve tüm iş parçacıklarının) çıkmasını sağlayan System.exit yöntemini çağırın.