जब कोई जावा प्रोग्राम System.out.println() या स्कैला प्रोग्राम कॉल करता है तो println() थ्रेड ब्लॉक करता है?क्या कंसोल आउटपुट अवरुद्ध करने वाला ऑपरेशन है?
मैं एक बड़ी संख्या में उप-कार्य के साथ एक स्कैला प्रोग्राम लिख रहा हूं। प्रत्येक सबटास्क को भविष्य के अंदर निष्पादित किया जाता है। यह अनुशंसा की जाती है कि अभिनेताओं और वायदा के अंदर कोड अवरुद्ध न हो, ताकि बाद के कार्यों को भी इंतजार न करना पड़े। लेकिन मैं कंसोल पर बहुत प्रिंट करना चाहता हूं।
और यदि यह एक अवरुद्ध ऑपरेशन है: प्रदर्शन को अनुकूलित करने के लिए मैं क्या कर सकता हूं?
- क्या मुझे कंसोल आउटपुट के लिए समर्पित थ्रेड का उपयोग करना चाहिए, ताकि थ्रेड केवल एक ही ब्लॉक हो?
- कोई अन्य सलाह?
बेशक मैं आउटपुट की मात्रा को कम करने या स्ट्रिंगबिल्डर में कुछ आउटपुट एकत्र करने का प्रयास कर सकता हूं और बैच में इसे एक साथ प्रिंट कर सकता हूं, जो आउटपुट ऑपरेशंस की संख्या को कम करता है।
* एक अलग फ़ाइल सिस्टम में लॉग लिखें। * आपका मतलब अलग है भौतिक ड्राइव? या यदि आपका मतलब है कि एक फ़ाइल सिस्टम को ऐसे कार्यों के लिए बेहतर अनुकूलित किया गया है (जैसे ext * बनाम btrfs), तो क्या आप नाम प्रकट कर सकते हैं? –
नहीं, मेरा मतलब वास्तव में आईओ श्रृंखला है, अलग-अलग एफएस प्रकार @ ओम-नाम-नाम नहीं। महान उपयोगकर्ता नाम बीटीडब्ल्यू। :-) – Gray
यह। यह एक अच्छी तरह से स्वरूपित और सहायक उत्तर है। – Andy