खोज…


दो सरल प्रक्रियाएं चलाना

कई प्रक्रियाओं का उपयोग करने का एक सरल उदाहरण दो प्रक्रियाएं (कार्यकर्ता) होंगी जिन्हें अलग-अलग निष्पादित किया जाता है। निम्नलिखित उदाहरण में, दो प्रक्रियाएँ शुरू की गई हैं:

  • countUp() 1 सेकंड, हर सेकंड में गिना जाता है।
  • countDown() 1 नीचे, प्रत्येक सेकंड में गिना जाता है।
import multiprocessing
import time
from random import randint

def countUp():
    i = 0
    while i <= 3:
        print('Up:\t{}'.format(i))
        time.sleep(randint(1, 3)) # sleep 1, 2 or 3 seconds
        i += 1

def countDown():
    i = 3
    while i >= 0:
        print('Down:\t{}'.format(i))
        time.sleep(randint(1, 3)) # sleep 1, 2 or 3 seconds
        i -= 1

if __name__ == '__main__':
    # Initiate the workers.
    workerUp = multiprocessing.Process(target=countUp)
    workerDown = multiprocessing.Process(target=countDown)
    
    # Start the workers.
    workerUp.start()
    workerDown.start()

    # Join the workers. This will block in the main (parent) process
    # until the workers are complete.
    workerUp.join()
    workerDown.join()

आउटपुट इस प्रकार है:

Up:    0
Down:    3
Up:    1
Up:    2
Down:    2
Up:    3
Down:    1
Down:    0

पूल और मानचित्र का उपयोग करना

from multiprocessing import Pool

def cube(x):
    return x ** 3

if __name__ == "__main__":
    pool = Pool(5)
    result = pool.map(cube, [0, 1, 2, 3])

Pool एक ऐसा वर्ग है जो पर्दे के पीछे कई Workers (प्रक्रियाओं) का प्रबंधन करता है और आपको, प्रोग्रामर, उपयोग की सुविधा देता है।

Pool(5) 5 प्रक्रियाओं के साथ एक नया पूल बनाता है, और pool.map नक्शे की तरह ही काम करता है लेकिन यह कई प्रक्रियाओं (पूल बनाते समय परिभाषित राशि) का उपयोग करता है।

इसी तरह के परिणाम map_async का उपयोग करके प्राप्त किया जा सकता है, apply और apply_async जो प्रलेखन में पाया जा सकता है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow