Free cookie consent management tool by TermsFeed The Queue class from the queue module of Python Standard Library | Pythontic.com

The Queue class from the queue module of Python Standard Library

Overview:

  • The Queue class in the queue module from the Python Standard Library provides a queue that can be shared between multiple threads.
    • E.g., Producer thread(s) and consumer thread(s) sharing a Queue instance to accomplish a work – also known as work crew as the group of threads work to complete a task picking up work packets from the common Queue instance. In a simple producer/consumer scenario - two work crews are involved. A producer crew and a consumer crew.
  • The synchronization is provided by the Queue itself.
  • The Queue class does not provide reentrancy.

Example:

# Example Python program that uses a common Queue in a producer/consumer model

import queue

import threading

import time

 

# Create a producer thread

def messageMaker(mq):

    for i in range(5):

        if i == 4:

            mq.put(None);

            print("Added message: %d"%i);

        else:

            mq.put("Message:%s"%time.time(), block=False);

            print("Added message: %d"%i);

 

    print("Message maker exiting");

 

# Create a consumer thread

def messageReader(mq):

        while(True):

            msg = mq.get();

            print("Read:%s"%msg);

            if msg is None:

                break;        

        print("Message reader exiting");

 

# Create a shared queue for the use of producer and consumer threads

mq = queue.Queue(maxsize = 5);

 

# Create producer and consumer threads

makerThread     = threading.Thread(target=messageMaker, args=(mq,));

readerThread    = threading.Thread(target=messageReader, args=(mq,));

 

# Start the threads

makerThread.start();

readerThread.start();

 

# With for the threads to complete

makerThread.join();

readerThread.join();

 

print("Parent thread exiting");

 

 

Output:

Added message: 0

Added message: 1

Read:Message:1574449719.224082

Added message: 2

Read:Message:1574449719.224226

Added message: 3

Read:Message:1574449719.224352

Added message: 4

Read:Message:1574449719.2244961

Message maker exiting

Read:None

Message reader exiting

Parent thread exiting


Copyright 2025 © pythontic.com