Type:
Class

This class provides a way to synchronize communication between threads.

Example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
require 'thread'
 
queue = Queue.new
 
producer = Thread.new do
  5.times do |i|
    sleep rand(i) # simulate expense
    queue << i
    puts "#{i} produced"
  end
end
 
consumer = Thread.new do
  5.times do |i|
    value = queue.pop
    sleep rand(i/2) # simulate expense
    puts "consumed #{value}"
  end
end
 
consumer.join
size
  • References/Ruby on Rails/Ruby/Classes/Queue

size() Instance Public methods Alias of length.

2025-01-10 15:47:30
deq
  • References/Ruby on Rails/Ruby/Classes/Queue

deq(non_block=false) Instance Public methods Alias of pop

2025-01-10 15:47:30
clear
  • References/Ruby on Rails/Ruby/Classes/Queue

clear() Instance Public methods Removes all objects from the queue.

2025-01-10 15:47:30
num_waiting
  • References/Ruby on Rails/Ruby/Classes/Queue

num_waiting() Instance Public methods Returns the number of threads waiting

2025-01-10 15:47:30
shift
  • References/Ruby on Rails/Ruby/Classes/Queue

shift(non_block=false) Instance Public methods Alias of pop

2025-01-10 15:47:30
length
  • References/Ruby on Rails/Ruby/Classes/Queue

length() Instance Public methods Returns the length of the queue.

2025-01-10 15:47:30
new
  • References/Ruby on Rails/Ruby/Classes/Queue

new() Class Public methods Creates a new queue.

2025-01-10 15:47:30
pop
  • References/Ruby on Rails/Ruby/Classes/Queue

pop(non_block=false) Instance Public methods Retrieves data from the queue.

2025-01-10 15:47:30
enq
  • References/Ruby on Rails/Ruby/Classes/Queue

enq(obj) Instance Public methods Alias of push

2025-01-10 15:47:30
empty?
  • References/Ruby on Rails/Ruby/Classes/Queue

empty?() Instance Public methods Returns true if the queue is empty

2025-01-10 15:47:30