आप कार्य के दो विभिन्न विचार सुनवाई कर रहे हैं। पहला नौकरी की धारणा है, और दूसरी प्रक्रिया की धारणा है।
बहुत समय पहले (कंप्यूटर शर्तों में), कोई धागे नहीं थे। किसी प्रोग्राम के प्रत्येक चलने वाले उदाहरण को एक प्रक्रिया कहा जाता था, क्योंकि यह बाहर निकलने तक दूसरे के बाद एक कदम के बाद बस एक कदम करता था। यह एक फैक्ट्री असेंबली लाइन की तरह चरणों की एक श्रृंखला के रूप में एक प्रक्रिया के अंतर्ज्ञानी विचार से मेल खाता है। ऑपरेटिंग सिस्टम प्रक्रिया abstraction का प्रबंधन करता है।
फिर, डेवलपर्स कारखानों में कई असेंबली लाइनों को जोड़ना शुरू कर दिया। अब एक कार्यक्रम एक से अधिक चीज़ों को एक साथ कर सकता है, और या तो लाइब्रेरी या (आमतौर पर आज) ऑपरेटिंग सिस्टम प्रत्येक थ्रेड के चरणों के शेड्यूलिंग का प्रबंधन करेगा। एक थ्रेड एक हल्के वजन की प्रक्रिया है, लेकिन एक धागा एक प्रक्रिया से संबंधित है, और एक प्रक्रिया में सभी धागे स्मृति साझा करते हैं। दूसरी ओर, कई प्रक्रियाएं एक-दूसरे की स्मृति के साथ गड़बड़ नहीं कर सकती हैं। इसलिए, आपके वेब सर्वर में एकाधिक थ्रेड प्रत्येक कनेक्शन के बारे में एक ही जानकारी तक पहुंच सकते हैं, लेकिन वर्ड एक्सेल के इन-मेमोरी डेटा स्ट्रक्चर तक नहीं पहुंच सकता है क्योंकि वर्ड और एक्सेल अलग प्रक्रियाओं के रूप में चल रहे हैं। चरणों की एक श्रृंखला के रूप में एक प्रक्रिया का विचार वास्तव में धागे के साथ एक प्रक्रिया के मॉडल से मेल नहीं खाता है, इसलिए कुछ लोगों ने "एक प्रक्रिया के रूप में पहले ज्ञात अमूर्तता" को बुलाया। यह कार्य की दूसरी परिभाषा है जिसे आपने ब्लॉग पोस्ट में देखा था। ध्यान दें कि इस बात का मतलब है कि बहुत से लोग अभी भी शब्द प्रक्रिया का उपयोग करते हैं।
ठीक है, जैसे धागे अधिक आम हो गए, डेवलपर्स ने उन्हें उपयोग करने में आसान बनाने के लिए उनके ऊपर और भी अधिक अवशोषण जोड़े। इससे थ्रेड पूल का उदय हुआ, जो थ्रेड के लाइब्रेरी-प्रबंधित "पूल" है। आप लाइब्रेरी को नौकरी देते हैं, और लाइब्रेरी एक थ्रेड चुनती है और उस धागे पर नौकरी चलाती है। .NET ढांचे में एक थ्रेड पूल कार्यान्वयन है, और पहली बार आपने "कार्य" के बारे में सुना है, प्रलेखन वास्तव में एक नौकरी का मतलब था जिसे आप थ्रेड पूल में पास करते हैं।
तो एक अर्थ में, दस्तावेज़ीकरण और ब्लॉग पोस्ट दोनों सही हैं। शब्द कार्य का अधिभार भ्रम का दुर्भाग्यपूर्ण स्रोत है।
स्रोत
2012-02-29 04:05:17
* नौकरी * और * कार्यकर्ता * के बीच क्या अंतर है? एक कार्यकर्ता * एक नौकरी करता है; एक कर्मचारी * नौकरी * नहीं है। कुछ नौकरियां एक ही कार्यकर्ता द्वारा की जाती हैं; कुछ नौकरियां छोटे नौकरियों में विभाजित होती हैं जो सभी काम करने वाले कई श्रमिकों द्वारा की जाती हैं। कार्यों और धागे के साथ ही; एक कार्य * धागा का एक प्रकार नहीं है *; एक काम एक नौकरी है, और एक धागा एक कार्यकर्ता है जो नौकरी करता है। –
मैंने सुना है कि एक और समानता यह है कि प्रोसेसर ड्राइवर हैं, धागे ट्रक हैं, और कार्यों को लोड करने के लिए लोड होते हैं। एक ड्राइवर (प्रोसेसर) एक समय में केवल एक ट्रक (धागा) संचालित कर सकता है, और एक ट्रक (धागा) एक समय में केवल एक लोड (कार्य) को पकड़ सकता है। आप जितना चाहें उतने ट्रक खरीद सकते हैं, लेकिन अधिक समय जब चालक ट्रक के बीच स्विचिंग करते समय कम समय लेते हैं।भार को परिवहन के लिए इंतजार कर रहे गोदाम में ढेर किया जा सकता है, और वेयरहाउस उन्हें प्राथमिकता दे सकता है और उन्हें नियमों के आधार पर ट्रक को सौंपा जा सकता है। –