Ini telah disinggung, tetapi hanya untuk memperjelas: membuat objek Thread baru hanya untuk memanggil metode run () itu tidak perlu mahal dan harus menjadi bendera merah utama. Ini akan menjadi desain yang jauh lebih baik, lebih dipisahkan untuk membuat impl Runnable dan baik (a) menyebutnya itu metode run () secara langsung kalau itu perilaku yang diinginkan, atau (b) membangun Thread baru dengan yang Runnable dan mulai Thread tersebut.
Lebih baik lagi, untuk lebih banyak pemisahan, lihat Executor
antarmuka dan kerangka kerja di JDK 5 dan yang lebih baru. Ini memungkinkan Anda, secara singkat, untuk memisahkan eksekusi tugas (contoh Runnable) dari bagaimana itu dijalankan (implementasi Executor, yang mungkin mengeksekusi Runnable di Thread saat ini, di Thread baru, menggunakan Thread yang ada dari kumpulan, dan apa tidak).