Java Timer, TimerTask, Tutorial Kelas Pengingat dengan Contoh

Diterbitkan: 2021-02-04
Java Timer, TimerTask, Tutorial Kelas Pengingat dengan Contoh

java.util.Timer adalah kelas utilitas yang dapat digunakan untuk menjadwalkan thread yang akan dieksekusi pada waktu tertentu di masa mendatang. Kelas Java Timer dapat digunakan untuk menjadwalkan tugas yang akan dijalankan satu kali atau dijalankan secara berkala.

java.util.TimerTask adalah kelas abstrak yang mengimplementasikan antarmuka Runnable dan kita perlu memperluas kelas ini untuk membuat TimerTask kita sendiri yang dapat dijadwalkan menggunakan kelas Java Timer .

Kelas Timer aman untuk utas dan beberapa utas dapat berbagi satu objek Timer tanpa perlu sinkronisasi eksternal. Kelas Timer menggunakan java.util.TaskQueue untuk menambahkan tugas pada interval reguler yang diberikan dan kapan saja hanya ada satu utas yang menjalankan TimerTask, misalnya jika Anda membuat Timer untuk dijalankan setiap 10 detik tetapi eksekusi utas tunggal membutuhkan waktu 20 detik, kemudian objek Timer akan terus menambahkan tugas ke antrian dan segera setelah satu utas selesai, itu akan memberi tahu antrian dan utas lain akan mulai dieksekusi.

Kelas Timer Java

Kelas timer menggunakan metode Object wait and notify untuk menjadwalkan tugas. TimerTask adalah abstract class dan kami mewarisinya untuk menyediakan implementasi konkret. Kelas TimerTask implements interface Runnable sehingga merupakan utas dan karenanya implementasi TimerTask Anda juga merupakan utas.

Timer dan TimerTask yang sangat sederhana Contoh: Tugas dijalankan setelah 5 seconds berlalu.

Hasil:

Program sederhana ini mengilustrasikan bagian-bagian dasar berikut dari implementasi dan penjadwalan tugas yang akan dieksekusi oleh utas pengatur waktu:

  • Terapkan subkelas khusus TimerTask . Metode run berisi kode yang melakukan tugas. Dalam contoh ini, subkelasnya bernama CrunchifyReminder.
  • Buat utas dengan membuat instance kelas Timer .
  • Buat instance objek TimerTask ( new CrunchifyReminder() ).
  • Jadwalkan tugas pengatur waktu untuk dieksekusi.

Bagaimana saya bisa melakukan TimerTask ini Berulang kali?

Hasil:

Secara default, sebuah program terus berjalan selama utas timernya berjalan. Anda dapat menghentikan utas pengatur waktu dengan empat cara:

  • Minta cancel pada penghitung waktu. Anda dapat melakukan ini dari mana saja dalam program, seperti dari metode run tugas pengatur waktu.
  • Jadikan utas timer sebagai "daemon" dengan membuat timer seperti ini: new Timer(true) . Jika satu-satunya utas yang tersisa dalam program adalah utas daemon, program akan keluar.
  • Setelah semua tugas terjadwal timer selesai dieksekusi, hapus semua referensi ke objek Timer . Akhirnya, utas pengatur waktu akan berakhir.
  • Aktifkan metode System.exit , yang membuat seluruh program (dan semua utasnya) keluar.