मैंने http://docs.python.org/dev/library/multiprocessing.html पर दस्तावेज़ीकरण पढ़ने की कोशिश की, लेकिन मैं अभी भी कतार, पूल और लॉकिंग को गुणा करने से जूझ रहा हूं। और अब मैं नीचे दिए गए उदाहरण का निर्माण करने में सक्षम था।
क्यू और पूल के बारे में, मुझे यकीन नहीं है कि अगर मैंने अवधारणा को सही तरीके से समझा, तो मुझे गलत होने पर सही करें। जो मैं प्राप्त करने की कोशिश कर रहा हूं वह समय पर 2 अनुरोधों को संसाधित करने के लिए है (डेटा सूची में 8 उदाहरण हैं) इसलिए, मुझे क्या उपयोग करना चाहिए? 2 प्रक्रियाओं को बनाने के लिए पूल जो दो अलग-अलग कतारों (अधिकतम पर 2) को संभाल सकता है या क्या मुझे हर बार 2 इनपुटों को संसाधित करने के लिए कतार का उपयोग करना चाहिए? लॉक आउटपुट को सही ढंग से प्रिंट करने के लिए होगा।
import multiprocessing
import time
data = (['a', '2'], ['b', '4'], ['c', '6'], ['d', '8'],
['e', '1'], ['f', '3'], ['g', '5'], ['h', '7']
)
def mp_handler(var1):
for indata in var1:
p = multiprocessing.Process(target=mp_worker, args=(indata[0], indata[1]))
p.start()
def mp_worker(inputs, the_time):
print " Processs %s\tWaiting %s seconds" % (inputs, the_time)
time.sleep(int(the_time))
print " Process %s\tDONE" % inputs
if __name__ == '__main__':
mp_handler(data)