क्योंकि ExecutorService
के Future
इंटरफेस के लिए नहीं एक और धागे से एक वापसी डेटा प्राप्त करने के लिए बनाई गई है बस इसे चलाते हैं। Future<Void> submit(Runnable task)
new Thread(runnable).start()
के समान काम करता है, null
की वापसी कुछ मामलों के लिए सार्थक है।
संपादित करें: सोचें कि आपको 20 मिनट के बाद थ्रेड बंद करने की आवश्यकता है। जब आप वापसी मूल्य void
करते हैं तो आप ऐसा कैसे करेंगे?
Future<Void> future = execService.submit(operation);
execService.shutdown();
opResult = future.get(20, TimeUnit.MINUTES);
इस कोड future
पर कोई वापसी न होने के कारण त्रुटि देना चाहिए। लेकिन अगर यह शून्य हो जाता है तो execService
नियंत्रक ऑब्जेक्ट को पता चलेगा कि shutdown
हुआ है। या यदि यह 20 मिनट execService.shutdownNow()
में कुछ भी वापस नहीं किया जा सकता है।
स्रोत
2017-05-15 08:15:11
में यदि ऐसा है तो 'भविष्य', यह ठीक उसी तरह के रूप में यह अब करता है काम करेगा बदलते। –
starikoff
आप कॉल विधि से शून्य कैसे वापस कर सकते हैं? –
'शून्य विधि() {वापसी शून्य; } ' – starikoff