Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में थ्रेड पूल


एक थ्रेड पूल पूर्व-आरंभिक थ्रेड्स का संग्रह है। थ्रेड पूल के पीछे सामान्य योजना विधि स्टार्टअप पर कई थ्रेड्स बनाना और उन्हें एक पूल में रखना है, जहां वे बैठते हैं और काम की प्रतीक्षा करते हैं। जब एक सर्वर भागीदारी के लिए कॉल प्राप्त करता है, तो यह इस पूल से एक थ्रेड को जगाता है—यदि कोई उपलब्ध है—और उसे सेवा के लिए अनुरोध पास करता है। एक बार जब थ्रेड अपनी सेवा पूरी कर लेता है, तो यह पूल में लौट आता है और अधिक काम की प्रतीक्षा करता है। यदि पूल में कोई सुलभ थ्रेड नहीं है, तो सर्वर तब तक प्रतीक्षा करता है जब तक कि कोई मुक्त न हो जाए।

यह समय बचाता है क्योंकि नया थ्रेड बनाने की कोई आवश्यकता नहीं होती है।

इसका उपयोग सर्वलेट और JSP में किया जाता है जहां कंटेनर अनुरोध को संसाधित करने के लिए एक थ्रेड पूल बनाता है।

उदाहरण

EmployeeThread.java

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; class EmployeeThread implements Runnable { private String message; public EmployeeThread(String s) { this.message=s; } public void run() { System.out.println(Thread.currentThread().getName()+" (Start) message = "+message); processmessage();// processmessage विधि को कॉल करें जो थ्रेड को 2 सेकंड के लिए सुलाती है System.out.println(Thread.currentThread().getName()+" (End)");// थ्रेड नाम प्रिंट करता है } private void processmessage() { try { Thread.sleep(1000); } catch (InterruptedException e){ e.printStackTrace(); } } }

ExampleThreadPool.java

public class implementThreadPool { public static void main(String[] args) { ExecutorService executor = Executors.newFixedThreadPool(6); // 6 थ्रेड्स का पूल बनाना for (int m = 0; m < 6; m++) { Runnable worker = new EmployeeThread("" + m); executor.execute(worker); // ExecutorService की execute विधि को कॉल करना } executor.shutdown(); while (!executor.isTerminated()) { } System.out.println("Finished all the threads"); } }

  1. - जावा में join() मेथड का महत्व?

    join() Thread क्लास का एक फाइनल मेथड है और इसका उपयोग एक थ्रेड के निष्पादन की शुरुआत को दूसरे थ्रेड के निष्पादन के अंत से जोड़ने के लिए किया जा सकता है ताकि एक थ्रेड तब तक चलना शुरू न करे जब तक दूसरा थ्रेड समाप्त न हो जाए। यदि join() मेथड को थ्रेड इंस्टेंस पर कॉल किया जाता है, तो वर्तमान में चल रहा

  1. - जावा में yield() मेथड का महत्व?

    yield() मेथड Thread क्लास का एक स्टैटिक मेथड है और यह वर्तमान में निष्पादित हो रहे थ्रेड को रोक सकता है और उसी प्राथमिकता के अन्य प्रतीक्षारत थ्रेड्स को मौका देगा। यदि कोई प्रतीक्षारत थ्रेड नहीं हैं या यदि सभी प्रतीक्षारत थ्रेड्स की कम प्राथमिकता है तो वही थ्रेड अपना निष्पादन जारी रखेगा। yield() मे

  1. - जावा में isDaemon() मेथड का महत्व?

    डेमन थ्रेड जावा में कम-प्राथमिकता वाला थ्रेड है जो बैकग्राउंड में चलता है और ज्यादातर JVM द्वारा गार्बेज कलेक्शन (GC) जैसे बैकग्राउंड कार्यों को करने के लिए बनाया जाता है। यदि कोई यूजर थ्रेड नहीं चल रहा है तो JVM डेमन थ्रेड्स के चलने पर भी बाहर निकल सकता है। डेमन थ्रेड का एकमात्र उद्देश्य यूजर थ्रे