Jika tersedia untuk Anda, maka sulit untuk memikirkan alasan untuk tidak menggunakan kerangka kerja Java 5 executor. Panggilan:
ScheduledExecutorService ex = Executors.newSingleThreadScheduledExecutor();
akan memberi Anda ScheduledExecutorService
fungsionalitas yang mirip dengan Timer
(yaitu akan berulir tunggal) tetapi aksesnya mungkin sedikit lebih skalabel (di bawah tenda, ia menggunakan struktur bersamaan daripada sinkronisasi lengkap seperti dengan Timer
kelas). Menggunakan ScheduledExecutorService
juga memberi Anda keuntungan seperti:
- Anda dapat menyesuaikannya jika perlu (lihat kelas
newScheduledThreadPoolExecutor()
atau ScheduledThreadPoolExecutor
)
- Eksekusi 'one off' dapat memberikan hasil
Satu-satunya alasan untuk tetap berpegang pada yang Timer
dapat saya pikirkan adalah:
- Ini tersedia sebelum Java 5
- Kelas serupa disediakan di J2ME, yang dapat membuat porting aplikasi Anda lebih mudah (tetapi tidak akan terlalu sulit untuk menambahkan lapisan abstraksi yang umum dalam kasus ini)