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

पायथन में मल्टीथ्रेडेड प्रायोरिटी क्यू


Queue मॉड्यूल आपको एक नया क्यू ऑब्जेक्ट बनाने की अनुमति देता है जो एक विशिष्ट संख्या में आइटम रख सकता है। क्यू को नियंत्रित करने के लिए निम्नलिखित विधियां हैं -

  • get() - get() क्यू से एक आइटम को हटाता है और लौटाता है।
  • put() - put क्यू में आइटम जोड़ता है।
  • qsize() - qsize() वर्तमान में क्यू में मौजूद आइटम की संख्या लौटाता है।
  • empty() - empty() True लौटाता है यदि क्यू खाली है; अन्यथा, False।
  • full() - full() True लौटाता है यदि क्यू भरा हुआ है; अन्यथा, False।

उदाहरण

#!/usr/bin/python import Queue import threading import time exitFlag = 0 class myThread (threading.Thread):    def __init__(self, threadID, name, q):       threading.Thread.__init__(self)       self.threadID = threadID       self.name = name       self.q = q    def run(self):       print "Starting " + self.name       process_data(self.name, self.q)       print "Exiting " + self.name def process_data(threadName, q):    while not exitFlag:       queueLock.acquire()          if not workQueue.empty():             data = q.get()             queueLock.release()             print "%s processing %s" % (threadName, data)          else:             queueLock.release()          time.sleep(1) threadList = ["Thread-1", "Thread-2", "Thread-3"] nameList = ["One", "Two", "Three", "Four", "Five"] queueLock = threading.Lock() workQueue = Queue.Queue(10) threads = [] threadID = 1 # नए थ्रेड बनाएं for tName in threadList: thread = myThread(threadID, tName, workQueue) thread.start() threads.append(thread) threadID += 1 # क्यू भरें queueLock.acquire() for word in nameList:    workQueue.put(word) queueLock.release() # क्यू के खाली होने की प्रतीक्षा करें while not workQueue.empty(): pass # थ्रेड्स को सूचित करें कि बाहर निकलने का समय है exitFlag = 1 # सभी थ्रेड्स के पूरा होने की प्रतीक्षा करें for t in threads:    t.join() print "Exiting Main Thread"

जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम देता है -

Starting Thread-1 Starting Thread-2 Starting Thread-3 Thread-1 processing One Thread-2 processing Two Thread-3 processing Three Thread-1 processing Four Thread-2 processing Five Exiting Thread-3 Exiting Thread-1 Exiting Thread-2 Exiting Main Thread

  1. - JavaScript में प्रायोरिटी क्यू

    प्रायोरिटी क्यू एक एब्स्ट्रैक्ट डेटा टाइप है जो नियमित क्यू या स्टैक डेटा स्ट्रक्चर की तरह है, लेकिन जहां अतिरिक्त रूप से प्रत्येक एलिमेंट के साथ एक प्राथमिकता जुड़ी होती है। प्रायोरिटी क्यू में, उच्च प्राथमिकता वाला एलिमेंट निम्न प्राथमिकता वाले एलिमेंट से पहले सर्व किया जाता है। यदि दो एलिमेंट्स

  1. C/C++ में प्रायोरिटी क्यू (Priority Queue) परिचय C/C++ में प्रायोरिटी क्यू (Priority Queue) परिचय

    एक प्रायोरिटी क्यू एक प्रकार की क्यू है जिसमें तत्वों को उन्हें असाइन की गई प्राथमिकताओं के अनुसार डाला या हटाया जाता है जहां प्राथमिकता एक पूर्णांक मान है जो 0-10 के बीच हो सकता है जहां 0 उच्चतम प्राथमिकता वाले तत्व को दर्शाता है और 10 निम्नतम प्राथमिकता वाले तत्व को दर्शाता है। प्रायोरिटी क्यू को

  1. C में लिंक्ड लिस्ट का उपयोग करके प्रायोरिटी क्यू (Priority Queue) C में लिंक्ड लिस्ट का उपयोग करके प्रायोरिटी क्यू (Priority Queue)

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