名前¶
Thread::Queue - スレッドセーフなキュー(待ち行列)
概要¶
use Thread::Queue;
my $q = new Thread::Queue;
$q->enqueue("foo", "bar");
my $foo = $q->dequeue; # "bar"はまだキューの中にある。
my $foo = $q->dequeue_nb; # "bar"を返す。キューが空ならundefを返す。
my $left = $q->pending; # キューの中に存在する要素の数を返す。
説明¶
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 elements from the head of the list. (Queues don't permit adding or removing elements from the middle of the list).
Thread::Queue
によって実装されるキュー(待ち行列)はリストによくにた スレッドセーフなデータ構造である。任意の数のスレッドが安全にリストの 最後に要素を付け加えたり、先頭から要素を取り除いたりすることができる (リストの中間部に対して加えたり取り除いたりするとこは出来ない)。
関数とメソッド¶
- new
-
The
new
function creates a new empty queue.new
関数は新規の空のキューを生成する。 - 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.enqueue
メソッドはキューの最後にスカラーのリストを付け加える。 リストに応じてキューは成長する。 - 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 threadenqueue
s a scalar.dequeue
メソッドはキューの先頭からスカラーを取り除き、それを返す。 キューが空のとき、dequeue
は他のスレッドがスカラーをenqueue
する までブロックする。 - dequeue_nb
-
The
dequeue_nb
method, like thedequeue
method, removes a scalar from the head of the queue and returns it. Unlikedequeue
, though,dequeue_nb
won't block if the queue is empty, instead returningundef
.dequeue_nb
メソッドはdequeue
メソッドのように、キューの先頭から スカラーを取り除く。だがdequeue
と違って、dequeue_nb
はキューが 空でもブロックしない。代わりにundef
を返す。 - pending
-
The
pending
method returns the number of items still in the queue.pending
メソッドは、まだキューに入っている要素の数を返す。