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 ScheduledExecutorServicefungsionalitas 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 Timerkelas). Menggunakan ScheduledExecutorServicejuga 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 Timerdapat 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)