るりまサーチ

最速Rubyリファレンスマニュアル検索!
226件ヒット [1-100件を表示] (0.059秒)

別のキーワード

  1. _builtin push
  2. csv push
  3. row push
  4. array push
  5. queue push

クラス

キーワード

検索結果

<< 1 2 3 > >>

Array#push(*obj) -> self (18133.0)

指定された obj を順番に配列の末尾に追加します。 引数を指定しなければ何もしません。

...定しなければ何もしません。

@
param obj 自身に追加したいオブジェクトを指定します。

//emlist[例][ruby]{
array = [1, 2, 3]
array.push 4
array.push [5, 6]
array.push 7, 8
p array # => [1, 2, 3, 4, [5, 6], 7, 8]
//}

@
see Array#pop, Array#shift, Array#unshift,...

Thread::SizedQueue#push(obj, non_block = false) -> () (15127.0)

キューに与えられたオブジェクトを追加します。

...す。
その後、キューに与えられたオブジェクトを追加します。

@
param obj キューに追加したいオブジェクトを指定します。
@
param non_block true を与えると、キューが一杯の時に例外 ThreadError が発生します。

@
see Thread::Queue#push...

Thread::ConditionVariable (110.0)

スレッドの同期機構の一つである状態変数を実現するクラスです。

...@q が空になった場合、
あるいは満タンになった場合に Condition 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

def enq(v)
@
mutex.synchronize{
@
full.wait(@mutex) if count == @max
@
q.push v
@
empty.signal if count == 1
}
end

def deq
@
mutex.synchronize{
@
empty.wait(@mutex) if co...
...unt == 0
v = @q.shift
@
full.signal if count == (@max - 1)
v
}
end

alias send enq
alias recv deq
end

if __FILE__ == $0
q = TinyQueue.new(1)
foods = 'Apple Banana Strawberry Udon Rice Milk'.split
l = []

th = Thread.new {
for obj in...

Thread::SizedQueue#deq(non_block = false) -> object (42.0)

キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。

...キューからひとつ値を取り出します。
キューに push しようと待っているスレッドがあれば、実行を再開させます。

@
param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'...
...ch{|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)
}

begi...
...n
th1.join
q.pop(true)
rescue => e
p e
p e.message
end

# => resource1
# resource2
# resource3
# => #<ThreadError: queue empty>
# => "queue empty"
//}

@
see Thread::Queue#pop...

Thread::SizedQueue#pop(non_block = false) -> object (42.0)

キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。

...キューからひとつ値を取り出します。
キューに push しようと待っているスレッドがあれば、実行を再開させます。

@
param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'...
...ch{|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)
}

begi...
...n
th1.join
q.pop(true)
rescue => e
p e
p e.message
end

# => resource1
# resource2
# resource3
# => #<ThreadError: queue empty>
# => "queue empty"
//}

@
see Thread::Queue#pop...

絞り込み条件を変える

Thread::SizedQueue#shift(non_block = false) -> object (42.0)

キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。

...キューからひとつ値を取り出します。
キューに push しようと待っているスレッドがあれば、実行を再開させます。

@
param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'...
...ch{|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)
}

begi...
...n
th1.join
q.pop(true)
rescue => e
p e
p e.message
end

# => resource1
# resource2
# resource3
# => #<ThreadError: queue empty>
# => "queue empty"
//}

@
see Thread::Queue#pop...

Array#append(*obj) -> self (33.0)

指定された obj を順番に配列の末尾に追加します。 引数を指定しなければ何もしません。

...定しなければ何もしません。

@
param obj 自身に追加したいオブジェクトを指定します。

//emlist[例][ruby]{
array = [1, 2, 3]
array.push 4
array.push [5, 6]
array.push 7, 8
p array # => [1, 2, 3, 4, [5, 6], 7, 8]
//}

@
see Array#pop, Array#shift, Array#unshift,...

Array#join(sep = $,) -> String (32.0)

配列の要素を文字列 sep を間に挟んで連結した文字列を返します。

...ては、以下
のような結果になります。

//emlist[例][ruby]{
ary = [1,2,3]
ary.push ary
p ary # => [1, 2, 3, [...]]
p ary.join # => ArgumentError: recursive array join
//}

@
param sep 間に挟む文字列を指定します。nil のときは空文字列を使います...
...メソッドによ
る暗黙の型変換を試みます。

@
raise TypeError 引数に文字列以外の(暗黙の型変換が行えない)オブジェクト
を指定した場合に発生します。

@
raise ArgumentError 配列要素が自身を含むような無限に...
...ネストした配列に対
して join を呼んだ場合に発生します。

//emlist[例][ruby]{
[1, 2, 3].join('-') #=> "1-2-3"
//}

@
see Array#*, $,...

Array#shift -> object | nil (32.0)

配列の先頭の要素を取り除いてそれを返します。 引数を指定した場合はその個数だけ取り除き、それを配列で返します。

...方法として使えます。

@
param n 自身から取り除きたい要素の個数を非負整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
黙の型変換を試みます。
@
raise TypeError 引数に整数以...
...生します。

@
raise ArgumentError 引数に負の数を指定した場合に発生します。



//emlist[例][ruby]{
a = [0, 1, 2, 3, 4]
p a.shift #=> 0
p a #=> [1, 2, 3, 4]

p [].shift #=> nil
p [].shift(1) #=> []
//}

@
see Array#push, Array#pop, A...

Array#shift(n) -> Array (32.0)

配列の先頭の要素を取り除いてそれを返します。 引数を指定した場合はその個数だけ取り除き、それを配列で返します。

...方法として使えます。

@
param n 自身から取り除きたい要素の個数を非負整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
黙の型変換を試みます。
@
raise TypeError 引数に整数以...
...生します。

@
raise ArgumentError 引数に負の数を指定した場合に発生します。



//emlist[例][ruby]{
a = [0, 1, 2, 3, 4]
p a.shift #=> 0
p a #=> [1, 2, 3, 4]

p [].shift #=> nil
p [].shift(1) #=> []
//}

@
see Array#push, Array#pop, A...

絞り込み条件を変える

Thread#join -> self (32.0)

スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。

...t を指定して、limit 秒過ぎても自身が終了しない場合、nil を返します。

@
param limit タイムアウトする時間を整数か小数で指定します。単位は秒です。

@
raise ThreadError join を実行することによってデッドロックが起きる場合に...
...

以下は、生成したすべてのスレッドの終了を待つ例です。

threads = []
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.push(Thread.new { n = rand(5); sleep n; n })

threads.each {|t| t.join}...
<< 1 2 3 > >>