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

पायथन में बहुप्रचारित प्राथमिकता कतार

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

  • प्राप्त करें () - get() कतार से किसी आइटम को हटाता है और लौटाता है।
  • डालें () - पुट आइटम को क्यू में जोड़ता है।
  • qsize() − qsize() उन आइटमों की संख्या लौटाता है जो वर्तमान में कतार में हैं।
  • खाली() - अगर कतार खाली है तो खाली () सही है; अन्यथा, गलत।
  • पूर्ण() - पूर्ण () रिटर्न सही है अगर कतार भरी हुई है; अन्यथा, गलत।

उदाहरण

#!/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
# Create new threads
for tName in threadList:
thread = myThread(threadID, tName, workQueue)
thread.start()
threads.append(thread)
threadID += 1
# Fill the queue
queueLock.acquire()
for word in nameList:
   workQueue.put(word)
queueLock.release()
# Wait for queue to empty
while not workQueue.empty():
pass
# Notify threads it's time to exit
exitFlag = 1
# Wait for all threads to complete
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. जावास्क्रिप्ट में प्राथमिकता कतार

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

  1. सी/सी++ में प्राथमिकता कतार परिचय

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

  1. सी . में लिंक्ड सूची का उपयोग कर प्राथमिकता कतार

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