128件ヒット
[1-100件を表示]
(0.068秒)
種類
- インスタンスメソッド (84)
- クラス (22)
- 特異メソッド (22)
クラス
-
Thread
:: Queue (22) -
Thread
:: SizedQueue (62)
オブジェクト
-
Readline
:: HISTORY (22)
キーワード
- ConditionVariable (11)
- SizedQueue (11)
- close (9)
- deq (11)
- enq (10)
- length (22)
- pop (11)
- shift (11)
検索結果
先頭5件
-
Thread
:: SizedQueue # push(obj , non _ block = false) -> () (18207.0) -
キューに与えられたオブジェクトを追加します。
...に与えられたオブジェクトを追加します。
キューのサイズが Thread::SizedQueue#max に達している場合は、
non_block が真でなければ、キューのサイズが Thread::SizedQueue#max
より小さくなるまで他のスレッドに実行を譲ります。
その......後、キューに与えられたオブジェクトを追加します。
@param obj キューに追加したいオブジェクトを指定します。
@param non_block true を与えると、キューが一杯の時に例外 ThreadError が発生します。
@see Thread::Queue#push... -
Readline
:: HISTORY . size -> Integer (18107.0) -
ヒストリに格納された内容の数を取得します。
...ヒストリに格納された内容の数を取得します。
例: ヒストリの内容を最初から順番に出力する。
require "readline"
Readline::HISTORY.push("foo", "bar", "baz")
p Readline::HISTORY.length #=> 3
@see Readline::HISTORY.empty?... -
Thread
:: Queue # size -> Integer (18107.0) -
キューの長さを返します。
...キューの長さを返します。
//emlist[例][ruby]{
require 'thread'
q = Queue.new
[:resource1, :resource2, :resource3, nil].each { |r| q.push(r) }
q.length # => 4
//}......キューの長さを返します。
//emlist[例][ruby]{
q = Queue.new
[:resource1, :resource2, :resource3, nil].each { |r| q.push(r) }
q.length # => 4
//}... -
Thread
:: SizedQueue # close -> self (9106.0) -
キューを close します。詳しくは Thread::Queue#close を参照してください。
...ーを close します。詳しくは Thread::Queue#close を参照してください。
Thread::Queue とはキューにオブジェクトを追加するスレッドの動作が
異なります。キューにオブジェクトを追加するスレッドを待機している場合は
ClosedQueueErr......or が発生して中断されます。
//emlist[例][ruby]{
q = SizedQueue.new(4)
[:resource1, :resource2, :resource3, nil].each { |r| q.push(r) }
q.closed? # => false
q.close
q.closed? # => true
//}
@see Thread::Queue#close... -
Readline
:: HISTORY . length -> Integer (6107.0) -
ヒストリに格納された内容の数を取得します。
...ヒストリに格納された内容の数を取得します。
例: ヒストリの内容を最初から順番に出力する。
require "readline"
Readline::HISTORY.push("foo", "bar", "baz")
p Readline::HISTORY.length #=> 3
@see Readline::HISTORY.empty?... -
Thread
:: Queue # length -> Integer (6107.0) -
キューの長さを返します。
...キューの長さを返します。
//emlist[例][ruby]{
require 'thread'
q = Queue.new
[:resource1, :resource2, :resource3, nil].each { |r| q.push(r) }
q.length # => 4
//}......キューの長さを返します。
//emlist[例][ruby]{
q = Queue.new
[:resource1, :resource2, :resource3, nil].each { |r| q.push(r) }
q.length # => 4
//}... -
Thread
:: ConditionVariable (6048.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
...である状態変数を実現するクラスです。
以下も ConditionVariable を理解するのに参考になります。
https://ruby-doc.com/docs/ProgrammingRuby/html/tut_threads.html#UF
=== Condition Variable とは
あるスレッド A が排他領域で動いていたとします。......ondition Variable を使って wait しています。
require 'thread'
class TinyQueue
def initialize(max=2)
@max = max
@full = ConditionVariable.new
@empty = ConditionVariable.new
@mutex = Mutex.new
@q = []
end
def count
@q.size
end
d......@full.wait(@mutex) if count == @max
@q.push v
@empty.signal if count == 1
}
end
def deq
@mutex.synchronize{
@empty.wait(@mutex) if count == 0
v = @q.shift
@full.signal if count == (@max - 1)
v
}
end
alias send... -
Thread
:: SizedQueue (6030.0) -
サイズの最大値を指定できる Thread::Queue です。
...1 の SizedQueue オブジェクトに
することによって、入力される行と出力される行が同じ順序になります。
q = [] にすると入力と違った順序で行が出力されます。
require 'thread'
q = SizedQueue.new(1)
th = Thread.start {
while line = q.......pop
print line
end
}
while l = gets
q.push(l)
end
q.push(l)
th.join... -
Thread
:: SizedQueue # deq(non _ block = false) -> object (3128.0) -
キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。
...ーに push しようと待っているスレッドがあれば、実行を再開させます。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = SizedQueue.new(4)
th1 = Thread.start do
while reso......nil].each{|r|
q.push(r)
}
th1.join
# => resource1
# resource2
# resource3
//}
//emlist[例: nonblock = true][ruby]{
require 'thread'
q = SizedQueue.new(4)
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].each{|r|
q.push(r)... -
Thread
:: SizedQueue # pop(non _ block = false) -> object (3128.0) -
キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。
...ーに push しようと待っているスレッドがあれば、実行を再開させます。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = SizedQueue.new(4)
th1 = Thread.start do
while reso......nil].each{|r|
q.push(r)
}
th1.join
# => resource1
# resource2
# resource3
//}
//emlist[例: nonblock = true][ruby]{
require 'thread'
q = SizedQueue.new(4)
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].each{|r|
q.push(r)...