RxJava में 5 अलग-अलग अनुसूचियों में से चुनने के लिए हैं:
तत्काल () : एक अनुसूचक बनाता है और वापस करता है जो वर्तमान थ्रेड पर तुरंत कार्य निष्पादित करता है।
trampoline () : बनाता है और वर्तमान समय पूरा होने के बाद निष्पादित करने के लिए वर्तमान थ्रेड पर काम करने वाले शेड्यूल को बनाता है।
newThread () : एक शेड्यूलर बनाता और वापस करता है जो प्रत्येक यूनिट के काम के लिए एक नया थ्रेड बनाता है।
अभिकलन () : कम्प्यूटेशनल कार्य के लिए एक शेड्यूलर बनाता और वापस करता है। इसका उपयोग इवेंट-लूप, प्रोसेसिंग कॉलबैक और अन्य कम्प्यूटेशनल काम के लिए किया जा सकता है। इस अनुसूचक पर IO- बद्ध कार्य न करें। शेड्यूलर का उपयोग करें। इसके बजाय io () ।
io () : आईओ-बाउंड कार्य के लिए एक शेड्यूलर बनाता और वापस करता है। कार्यान्वयन एक एक्सेक्यूटर थ्रेड-पूल द्वारा समर्थित है जो आवश्यकतानुसार बढ़ेगा। इसका उपयोग अतुल्यकालिक रूप से अवरुद्ध आईओ के प्रदर्शन के लिए किया जा सकता है। इस अनुसूचक पर कम्प्यूटेशनल कार्य न करें। शेड्यूलर का उपयोग करें। संगणना () के बजाय।
प्रशन:
पहले 3 अनुसूचियां बहुत आत्म व्याख्यात्मक हैं; हालाँकि, मैं गणना और io के बारे में थोड़ा उलझन में हूँ ।
- वास्तव में "IO- बाउंड वर्क" क्या है? क्या इसका उपयोग धाराओं (
java.io
) और फ़ाइलों (java.nio.files
) से निपटने के लिए किया जाता है ? क्या इसका उपयोग डेटाबेस प्रश्नों के लिए किया जाता है? इसका उपयोग फ़ाइलों को डाउनलोड करने या REST API तक पहुँचने के लिए किया जाता है? - कैसे गणना () नए थ्रेड () से अलग है ? क्या यह है कि सभी गणना () कॉल हर बार एक नए (पृष्ठभूमि) धागे के बजाय एक एकल (पृष्ठभूमि) धागे पर होती हैं?
- IO काम करते समय कम्प्यूटेशन () को कॉल करना क्यों बुरा है ?
- कम्प्यूटेशनल काम करते समय io () को कॉल करना क्यों बुरा है ?