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

PHP में समवर्तीता और समानता की खोज: व्यावहारिक ट्यूटोरियल और युक्तियाँ

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

Exploring Concurrency and Parallelism in PHP: Hands-On Tutorials and Tips

कुशल PHP अनुप्रयोगों को लिखने के लिए समवर्ती और समानता को समझना महत्वपूर्ण है, खासकर जब कई कार्यों या संचालन से निपटना होता है जिन्हें एक साथ संभालने की आवश्यकता होती है। यहां व्यावहारिक उदाहरणों और विवरणों के साथ PHP में समवर्ती और समानता को समझने और लागू करने के लिए चरण-दर-चरण मार्गदर्शिका दी गई है।

1. समवर्ती बनाम समांतरता

  • Concurrency: एक सिस्टम की एक साथ कई कार्यों को उनके निष्पादन को बीच में रखकर संभालने की क्षमता को संदर्भित करता है। इसका मतलब यह नहीं है कि कार्य एक ही समय में निष्पादित किए जाते हैं, बस उन्हें प्रबंधित किया जाता है ताकि वे एक साथ प्रगति करते हुए दिखाई दें।

  • समानांतरता: इसमें कई प्रोसेसर या कोर का लाभ उठाते हुए एक ही समय में कई कार्यों को निष्पादित करना शामिल है। यह समवर्तीता का एक उपसमूह है जहां कार्य वस्तुतः समानांतर में चल रहे हैं।

2. PHP में समवर्ती

PHP पारंपरिक रूप से सिंगल-थ्रेडेड है, जिसका अर्थ है कि यह एक समय में एक कार्य को संभालता है। हालाँकि, अतुल्यकालिक प्रसंस्करण और बाहरी उपकरणों का उपयोग करने जैसी तकनीकों के माध्यम से समवर्तीता अभी भी प्राप्त की जा सकती है।

2.1. Concurrency के लिए pcntl_fork का उपयोग करना

पीएचपी में पीसीएनटीएल (प्रोसेस कंट्रोल) एक्सटेंशन प्रक्रिया नियंत्रण की अनुमति देता है और फोर्किंग प्रक्रियाओं द्वारा समवर्तीता प्राप्त करने के लिए इसका उपयोग किया जा सकता है।

आवश्यकताएँ:

  • सुनिश्चित करें कि आपके PHP इंस्टॉलेशन में पीसीएनटीएल एक्सटेंशन सक्षम है।

उदाहरण:


स्पष्टीकरण:

  • pcntl_fork() एक नई प्रक्रिया बनाता है।
  • मूल प्रक्रिया और चाइल्ड प्रक्रिया एक साथ चलती हैं।
  • मूल प्रक्रिया pcntl_wait() का उपयोग करके चाइल्ड प्रक्रिया के पूरा होने की प्रतीक्षा करती है।

2.2. ReactPHP के साथ अतुल्यकालिक प्रसंस्करण

ReactPHP PHP में इवेंट-संचालित प्रोग्रामिंग के लिए एक लाइब्रेरी है, जो अतुल्यकालिक संचालन की अनुमति देता है।

स्थापना:

composer require react/event-loop

उदाहरण:

run();
?>

स्पष्टीकरण:

  • ReactPHP अतुल्यकालिक कार्य निष्पादन को सक्षम बनाता है।
  • कार्य समवर्ती रूप से चलते हैं, इवेंट लूप उनके निष्पादन को प्रबंधित करता है।

3. PHP में समानता

समानांतरवाद में एक साथ कई कार्यों को निष्पादित करना शामिल है। PHP में, इसे समानांतर प्रसंस्करण के लिए डिज़ाइन किए गए टूल और लाइब्रेरी का उपयोग करके प्राप्त किया जा सकता है।

3.1. समानांतर एक्सटेंशन का उपयोग करना

समानांतर एक्सटेंशन मल्टी-थ्रेडिंग को सक्षम करके PHP में समानांतर प्रसंस्करण की अनुमति देता है।

स्थापना:

  • पीईसीएल का उपयोग करके समानांतर एक्सटेंशन स्थापित करें या इसे स्रोत से संकलित करें।

उदाहरण:

run(function() {
    task('1');
});
$future2 = $runtime2->run(function() {
    task('2');
});

// Wait for tasks to complete
$future1->value();
$future2->value();
?>

स्पष्टीकरण:

  • समानांतर एकाधिक रनटाइम वातावरण बनाने में सक्षम बनाता है।
  • कार्य अलग-अलग थ्रेड में समानांतर रूप से चलते हैं।

3.2. पाथ्रेड्स एक्सटेंशन का उपयोग करना

pthreads एक्सटेंशन PHP स्क्रिप्ट को थ्रेड बनाने, पढ़ने और लिखने की अनुमति देता है।

स्थापना:

  • पीईसीएल का उपयोग करके पाथ्रेड्स एक्सटेंशन इंस्टॉल करें।

उदाहरण:

name = $name;
    }

    public function run() {
        echo "Thread {$this->name} started\n";
        sleep(2); // Simulate a task
        echo "Thread {$this->name} completed\n";
    }
}

$worker1 = new Worker('1');
$worker2 = new Worker('2');

// Start threads
$worker1->start();
$worker2->start();

// Join threads to main script
$worker1->join();
$worker2->join();
?>

स्पष्टीकरण:

  • pthreads थ्रेडिंग समर्थन प्रदान करता है।
  • थ्रेड कई सीपीयू कोर का उपयोग करके समानांतर में कार्य चलाते हैं।

4. निष्कर्ष

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

अपने विशिष्ट उपयोग के मामले और PHP वातावरण के आधार पर इन उदाहरणों को बेझिझक अनुकूलित करें।

विज्ञप्ति वक्तव्य इस लेख को पुन: पेश किया गया है: https://dev.to/mdarifulhaque/exploring-concurrency-and-parallelism-in-php-hands-on-tutorials-and-tips-2kc6?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3