MirBSD manpage: Thread::Queue(3p)

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.

             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

     pending The "pending" method returns the number of items
             still in the queue.


     threads, threads::shared

perl v5.8.8                2005-02-05                           1

Generated on 2022-12-24 01:00:14 by $MirOS: src/scripts/roff2htm,v 1.113 2022/12/21 23:14:31 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2022 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.

Kontakt / Impressum & Datenschutzerklärung