दूसरों ने जो कहा है वह सही है। Java.io में जावा की "पुरानी I/O" लाइब्रेरी में अवरुद्ध कॉल शामिल हैं। लेकिन वे इंतजार में व्यस्त नहीं हैं। वे I/O पर अवरुद्ध कर रहे हैं और कर्नेल एक बार फिर I/O उपलब्ध होने पर उन्हें फिर से निर्धारित करेगा।
मुझे पूरी तरह से यकीन नहीं था, इसलिए मैंने इसे अपने लिए बाहर करने की कोशिश की। इस नमूना वर्ग को लें:
import java.io.*;
public class Test {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();
System.out.println(line);
}
}
और इसे कमांड लाइन पर संकलित करें। फिर इसे चलाएं, लेकिन कुछ भी टाइप न करें। कार्यक्रम तब तक इनपुट पर अवरुद्ध होना चाहिए जब तक कि आप कोई अक्षर टाइप न करें, और जब तक आप एंटर टाइप न करें तब तक यह पिछले रीडलाइन की प्रगति नहीं करेगा। ps
हमें इस प्रक्रिया के बारे में अधिक जानकारी बताने में सक्षम होना चाहिए। ps
से अधिक विस्तृत जानकारी प्राप्त करने के लिए a
ध्वज का उपयोग करें:
[email protected]<computer-name>] ps a
PID TT STAT TIME COMMAND
3846 s000 S 0:00.16 -zsh
3992 s000 S+ 0:00.40 /usr/bin/java Test
के लिए पी एस आदमी पेज का कहना है:
राज्य राज्य वर्णों की एक अनुक्रम द्वारा दिया जाता है, उदाहरण के लिए, `` RWNA ''।
- मैं मार्क्स एक प्रक्रिया है कि प्रयोग में नहीं है (के बारे में से अधिक समय 20 सेकंड के लिए सो): पहला वर्ण प्रक्रिया के रन राज्य इंगित करता है।
- आर एक चलने योग्य प्रक्रिया को चिह्नित करता है।
- एस ऐसी प्रक्रिया को चिह्नित करता है जो लगभग 20 सेकंड से कम समय तक सो रहा है।
और क्योंकि मैं सिर्फ प्रक्रिया शुरू कर दी, एस समझ में आता है। प्रक्रिया ओएस द्वारा शेड्यूलिंग की प्रतीक्षा कर रही है, सो रही है। दरअसल, यदि आप top
चेक करते हैं, तो आप देखेंगे कि प्रक्रिया 0% सीपीयू ले रही है।
इसलिए इस कॉल के प्रदर्शन के बारे में चिंता न करें, कोई व्यस्त प्रतीक्षा या मतदान नहीं हो रहा है: सिस्टम आपके लिए आई/ओ कार्यक्रमों का ख्याल रख रहा है और समझदारी से आपकी प्रक्रिया को संभालेगा।
क्या इनमें से कोई भी प्रतिक्रिया आपके प्रश्न को पर्याप्त रूप से समझाती है? यदि ऐसा है, तो आपको शायद अपने स्वीकृत उत्तर के रूप में चिह्नित करना चाहिए। यदि नहीं, तो अभी भी अस्पष्ट होने के लिए अपने प्रश्न को संपादित करें। – jasonmp85