Thread::Queue(3p)Perl Programmers Reference GuidThread::Queue(3p)
Thread::Queue - thread-safe queues
use Thread::Queue; my $q = new Thread::Queue; $q->enqueue("foo", "bar"); my $foo = $q->dequeue; # The "bar" is still in the queue. my $foo = $q->dequeue_nb; # returns "bar", or undef if the queue was empty my $left = $q->pending; # returns the number of items still in the queue
A queue, as implemented by "Thread::Queue" is a thread-safe data structure much like a list. Any number of threads can safely add elements to the end of the list, or remove ele- ments from the head of the list. (Queues don't permit adding or removing elements from the middle of the list).
new The "new" function creates a new empty queue. enqueue LIST The "enqueue" method adds a list of scalars on to the end of the queue. The queue will grow as needed to accommodate the list. dequeue The "dequeue" method removes a scalar from the head of the queue and returns it. If the queue is currently empty, "dequeue" will block the thread until another thread "enqueue"s a scalar. dequeue_nb The "dequeue_nb" method, like the "dequeue" method, removes a scalar from the head of the queue and returns it. Unlike "dequeue", though, "dequeue_nb" won't block if the queue is empty, instead returning "undef". pending The "pending" method returns the number of items still in the queue.
threads, threads::shared perl v5.8.8 2005-02-05 1