D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
ruby34
/
share
/
ri
/
system
/
Thread
/
Queue
/
Filename :
cdesc-Queue.ri
back
Copy
U:RDoc::NormalClass[iI" Queue:ETI"Thread::Queue;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[ I"GThe Thread::Queue class implements multi-producer, multi-consumer ;TI"Cqueues. It is especially useful in threaded programming when ;TI"Hinformation must be exchanged safely between multiple threads. The ;TI"GThread::Queue class implements all the required locking semantics.;To:RDoc::Markup::BlankLine o; ;[I"DThe class implements FIFO (first in, first out) type of queue. ;TI"DIn a FIFO queue, the first tasks added are the first retrieved.;T@o; ;[I" Example:;T@o:RDoc::Markup::Verbatim;[I"queue = Thread::Queue.new ;TI" ;TI"producer = Thread.new do ;TI" 5.times do |i| ;TI"* sleep rand(i) # simulate expense ;TI" queue << i ;TI" puts "#{i} produced" ;TI" end ;TI" end ;TI" ;TI"consumer = Thread.new do ;TI" 5.times do |i| ;TI" value = queue.pop ;TI", sleep rand(i/2) # simulate expense ;TI"" puts "consumed #{value}" ;TI" end ;TI" end ;TI" ;TI"consumer.join;T:@format0: @fileI"thread_sync.c;T:0@omit_headings_from_table_of_contents_below0o;;[ ; I"thread_sync.rb;T;0; 0;0[ [ [ [[I" class;T[[:public[[I"new;TI"thread_sync.c;T[:protected[ [:private[ [I" instance;T[[;[[I"<<;T@@[I" clear;T@@[I" close;T@@[I"closed?;T@@[I"deq;TI"thread_sync.rb;T[I"empty?;T@@[I"enq;T@@[I"freeze;T@@[I"length;T@@[I"num_waiting;T@@[I"pop;T@T[I" push;T@@[I" shift;T@T[I" size;T@@[;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ; 0;0[@1@4I"Thread;TcRDoc::NormalClass