क्लोजर प्रोग्राम मुख्य कार्य में अंतिम कथन को खत्म करने के तुरंत बाद बाहर निकलने का कारण नहीं होगा?क्लोजर प्रोग्राम अंतिम वक्तव्य समाप्त करते समय बाहर नहीं निकल रहा है?
मैंने बस (doall (map ...))
को (doall (pmap ...))
में बदलना था, और अचानक कार्यक्रम बाहर निकलने से पहले सेकंड की अच्छी संख्या के लिए अपने कार्यों को पूरा करने पर लटका होगा। मैं -main
फ़ंक्शन की अंतिम पंक्ति पर (println "Finished everything!")
डालूंगा, और यह प्रिंट करेगा, फिर भी कुछ समय के लिए बाहर नहीं निकलता है। इस व्यवहार का कारण क्या हो सकता है, और मुझे इसे कैसे ठीक करना चाहिए?
संपादित करें: पीएमएपी प्रोग्राम का एकमात्र हिस्सा है जो समानांतर है (अधिकतर क्योंकि सब कुछ तुरंत या कम चलता है)। कार्यक्रम के बाद के हिस्सों के रूप में सही ढंग से कार्य करने के लिए pmap से सभी परिणामों की आवश्यकता होती है, और जैसे ही प्रोग्राम आउटपुट मानचित्र और pmap दोनों के लिए समान है, मुझे कुछ हद तक संदेह है कि कार्यक्रम के अंत में pmap अभी भी चल रहा है। Println के बजाय अंत में (System/exit 0)
डालकर प्रोग्राम आउटपुट नहीं बदलता है।
मुझे लगता है कि चाहते हैं कि pmap पूरी तरह से अपने प्रसंस्करण कर रही है जब कोड यह आग के बाद नहीं किया जाना चाहिए। बिना किसी कोड के बताना मुश्किल है। –
संभावित डुप्लिकेट [क्लोजर मेरी गणना करने के बाद क्यों लटका है?] (Http://stackoverflow.com/questions/2622750/why-does-clojure-hang-after-having-performed-my-calculations) – amalloy