यह पहले से ही स्पष्ट हो गया है, लेकिन बस स्पष्ट होने के लिए: इसे चलाने के लिए केवल एक नया थ्रेड ऑब्जेक्ट बनाना () विधि अनावश्यक रूप से महंगा है और एक प्रमुख लाल झंडा होना चाहिए। यह एक Runnable impl और बनाने के लिए एक बेहतर, अधिक decoupled डिजाइन किया जाएगा या तो (क) फोन यह रन () विधि सीधे कि अगर वांछित व्यवहार, या (ख) कि Runnable के साथ एक नया थ्रेड का निर्माण और धागा शुरू है।
बेहतर अभी तक, और भी अधिक decoupling के लिए, ExecutorJDK 5 और नए में इंटरफ़ेस और रूपरेखा देखें। यह आपको संक्षेप में, टास्क एक्जीक्यूशन (रन करने योग्य उदाहरण) को डिकॉउप करने की अनुमति देता है कि इसे कैसे निष्पादित किया जाता है (एक्जीक्यूटर कार्यान्वयन, जो मौजूदा थ्रेड में रननेबल को निष्पादित कर सकता है, एक नए थ्रेड में, पूल से मौजूदा थ्रेड का उपयोग करके,) और क्या नहीं)।