"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावा थ्रेड पूल: थ्रेड्स को कुशलतापूर्वक कैसे प्रबंधित करें

जावा थ्रेड पूल: थ्रेड्स को कुशलतापूर्वक कैसे प्रबंधित करें

2024-11-09 को प्रकाशित
ब्राउज़ करें:329

Java Thread Pool: How to Efficiently Manage Threads

1. जावा में थ्रेड पूल का परिचय

1.1 थ्रेड पूल क्या है?

थ्रेड पूल पूर्व-तत्काल पुन: प्रयोज्य थ्रेड्स का एक समूह है जो कार्य करने के लिए उपलब्ध हैं। जब कोई कार्य सबमिट किया जाता है, तो उसे पूल में एक निष्क्रिय थ्रेड को सौंपा जाता है। यदि सभी थ्रेड व्यस्त हैं, तो थ्रेड उपलब्ध होने तक कार्य कतार में प्रतीक्षा करता है।

1.2 थ्रेड पूल का उपयोग क्यों करें?

थ्रेड पूल कई फायदे प्रदान करते हैं:

  • संसाधन प्रबंधन : थ्रेड का पुन: उपयोग करके, थ्रेड पूल थ्रेड निर्माण और विनाश के ओवरहेड को कम करते हैं।
  • प्रदर्शन : थ्रेड पूल एक निश्चित संख्या में थ्रेड का प्रबंधन करते हैं, जिससे सिस्टम को अत्यधिक थ्रेड निर्माण से अभिभूत होने से बचाया जा सकता है।
  • स्केलेबिलिटी : सभी थ्रेड व्यस्त होने पर थ्रेड पूल बड़ी संख्या में कार्यों को कतारबद्ध करके संभाल सकते हैं, यह सुनिश्चित करते हुए कि कार्यों को कुशलतापूर्वक संसाधित किया जाता है।

1.3 थ्रेड पूल कैसे काम करता है?

जब आप थ्रेड पूल में कोई कार्य सबमिट करते हैं, तो निम्न चरण होते हैं:

  • कार्य को एक कतार में जोड़ा गया है।
  • यदि कोई निष्क्रिय थ्रेड उपलब्ध है, तो वह कार्य उठाता है और उसे निष्पादित करता है।
  • यदि कोई निष्क्रिय थ्रेड उपलब्ध नहीं है, तो कार्य कतार में तब तक प्रतीक्षा करता है जब तक कोई थ्रेड मुक्त नहीं हो जाता।

1.4 थ्रेड पूल का उपयोग कब करें?

थ्रेड पूल उन परिदृश्यों में विशेष रूप से उपयोगी होते हैं जहां आपको बड़ी संख्या में अल्पकालिक कार्यों को प्रबंधित करने की आवश्यकता होती है, जैसे वेब सर्वर में अनुरोधों को संभालना या नौकरियों के बैच को संसाधित करना।

2. जावा में थ्रेड पूल लागू करना

जावा java.util.concurrent पैकेज में कई अंतर्निहित थ्रेड पूल कार्यान्वयन प्रदान करता है, जिसमें सबसे अधिक उपयोग किया जाता है ExecutorService। आइए जानें कि जावा में थ्रेड पूल कैसे बनाएं और उसका उपयोग कैसे करें।

2.1 थ्रेड पूल बनाना

जावा में थ्रेड पूल बनाने के लिए, आप Executors क्लास का उपयोग कर सकते हैं, जो विभिन्न प्रकार के थ्रेड पूल बनाने के लिए विभिन्न तरीके प्रदान करता है।

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadPoolExample {
    public static void main(String[] args) {
        // Create a fixed thread pool with 5 threads
        ExecutorService executorService = Executors.newFixedThreadPool(5);

        for (int i = 0; i 



2.2 थ्रेड पूल के प्रकार

जावा कई प्रकार के थ्रेड पूल प्रदान करता है, प्रत्येक को अलग-अलग परिदृश्यों के लिए डिज़ाइन किया गया है:

फिक्स्ड थ्रेड पूल : थ्रेड की एक निश्चित संख्या बनाता है। यदि सभी थ्रेड व्यस्त हैं, तो कार्य कतारबद्ध हो जाते हैं।

ExecutorService fixedPool = Executors.newFixedThreadPool(10);

कैश्ड थ्रेड पूल: आवश्यकतानुसार नए थ्रेड बनाता है लेकिन उपलब्ध होने पर पहले से निर्मित थ्रेड का पुन: उपयोग करता है। कई अल्पकालिक कार्यों को निष्पादित करने के लिए उपयुक्त।

ExecutorService cachedPool = Executors.newCachedThreadPool();

सिंगल थ्रेड एक्ज़ीक्यूटर: कार्यों को क्रमिक रूप से निष्पादित करने के लिए एक सिंगल वर्कर थ्रेड बनाता है।

ExecutorService singlePool = Executors.newSingleThreadExecutor();

अनुसूचित थ्रेड पूल: एक थ्रेड पूल बनाता है जो किसी दिए गए विलंब के बाद या समय-समय पर चलने के लिए कमांड को शेड्यूल कर सकता है।

ScheduledExecutorService scheduledPool = Executors.newScheduledThreadPool(5);

2.3 उदाहरण: फिक्स्ड थ्रेड पूल डेमो

प्रदान किए गए उदाहरण में, 5 थ्रेड्स वाला एक निश्चित थ्रेड पूल बनाया गया है। हम पूल में 10 कार्य सबमिट करते हैं। पूल इन कार्यों को उपलब्ध थ्रेड्स को निर्दिष्ट करता है। यदि सभी थ्रेड व्यस्त हैं, तो कार्य कतार में प्रतीक्षा करते हैं।

अपेक्षित आउटपुट:

Task 0 is being executed by pool-1-thread-1
Task 1 is being executed by pool-1-thread-2
Task 2 is being executed by pool-1-thread-3
Task 3 is being executed by pool-1-thread-4
Task 4 is being executed by pool-1-thread-5
Task 5 is being executed by pool-1-thread-1
Task 6 is being executed by pool-1-thread-2
Task 7 is being executed by pool-1-thread-3
Task 8 is being executed by pool-1-thread-4
Task 9 is being executed by pool-1-thread-5

2.4 थ्रेड पूल का उपयोग करने के सर्वोत्तम अभ्यास

  • सही पूल आकार चुनें : कार्यों की प्रकृति के आधार पर पूल आकार का चयन करें। सीपीयू-बाउंड कार्यों को उपलब्ध प्रोसेसर की संख्या के बराबर पूल आकार से लाभ हो सकता है, जबकि I/O-बाउंड कार्यों को बड़े पूल की आवश्यकता हो सकती है।
  • ग्रेसफुल शटडाउन: उचित संसाधन सफाई की अनुमति देने के लिए हमेशा शटडाउन() या शटडाउननाउ() का उपयोग करके थ्रेड पूल को बंद करें।
  • ब्लॉकिंग ऑपरेशंस से बचें : थ्रेड भुखमरी को रोकने के लिए कार्यों के भीतर ब्लॉकिंग ऑपरेशंस से बचें
  • मॉनिटर और एडजस्ट करें : थ्रेड पूल के प्रदर्शन की निगरानी करें और एप्लिकेशन आवश्यकताओं को पूरा करने के लिए आवश्यकतानुसार पूल आकार या कॉन्फ़िगरेशन को समायोजित करें।

3. निष्कर्ष

जावा में थ्रेड पूल कार्यों को कुशलतापूर्वक प्रबंधित और निष्पादित करने का एक मजबूत तरीका प्रदान करते हैं। थ्रेड्स के एक निश्चित सेट का पुन: उपयोग करके, वे ओवरहेड को कम करते हैं और बहु-थ्रेडेड अनुप्रयोगों के प्रदर्शन में सुधार करते हैं। चाहे आप वेब अनुरोधों को संसाधित कर रहे हों, पृष्ठभूमि कार्य चला रहे हों, या समानांतर गणना निष्पादित कर रहे हों, थ्रेड पूल आपके जावा समवर्ती टूलकिट में एक आवश्यक उपकरण हैं।

क्या आपके कोई प्रश्न हैं? उन्हें नीचे टिप्पणी में लिखें!

यहां अधिक पोस्ट पढ़ें : जावा थ्रेड पूल: थ्रेड्स को कुशलतापूर्वक कैसे प्रबंधित करें

विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/anh_trntun_4732cf3d299/java-thread-hool-how-how-how-to-effically- threads-threads-3j36?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3