るりまサーチ

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

別のキーワード

  1. drb thread
  2. thread exit
  3. thread kill
  4. etc sc_thread_cputime

ライブラリ

クラス

キーワード

検索結果

<< < 1 2 3 >>

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

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

...ーが空の時に例外 ThreadError が発生します。

//emlist[例][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)
}

th1.join
# => resource1
# resource2...
...e '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)
}

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

# => resource1
# resource2
# resource3
# => #<ThreadErr...
...or: queue empty>
# => "queue empty"
//}

@see Thread::Queue#pop...

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

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

...ーが空の時に例外 ThreadError が発生します。

//emlist[例][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)
}

th1.join
# => resource1
# resource2...
...e '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)
}

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

# => resource1
# resource2
# resource3
# => #<ThreadErr...
...or: queue empty>
# => "queue empty"
//}

@see Thread::Queue#pop...

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

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

...ーが空の時に例外 ThreadError が発生します。

//emlist[例][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)
}

th1.join
# => resource1
# resource2...
...e '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)
}

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

# => resource1
# resource2
# resource3
# => #<ThreadErr...
...or: queue empty>
# => "queue empty"
//}

@see Thread::Queue#pop...

Thread::Queue#deq(non_block = false) -> object (3037.0)

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

...ューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'

q = Queue.new

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}

th1.join
//}

//emlist[例: nonblock =...
...hread'

q = Queue.new

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}

begin
th1.join
q.pop(true)
rescue => e
p e
end

# => resource1
# resource2
# resource3
# => #<ThreadError: queue empty>
# => "q...

Thread::Queue#pop(non_block = false) -> object (3037.0)

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

...ューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'

q = Queue.new

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}

th1.join
//}

//emlist[例: nonblock =...
...hread'

q = Queue.new

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}

begin
th1.join
q.pop(true)
rescue => e
p e
end

# => resource1
# resource2
# resource3
# => #<ThreadError: queue empty>
# => "q...

絞り込み条件を変える

Thread::Queue#shift(non_block = false) -> object (3037.0)

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

...ューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'

q = Queue.new

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}

th1.join
//}

//emlist[例: nonblock =...
...hread'

q = Queue.new

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}

begin
th1.join
q.pop(true)
rescue => e
p e
end

# => resource1
# resource2
# resource3
# => #<ThreadError: queue empty>
# => "q...

Thread::Queue#num_waiting -> Integer (3019.0)

キューを待っているスレッドの数を返します。

...キューを待っているスレッドの数を返します。

//emlist[例][ruby]{
require 'thread'

q = SizedQueue.new(1)
q.push(1)
t = Thread.new { q.push(2) }
sleep 0.05 until t.stop?
q.num_waiting # => 1

q.pop
t.join
//}...

ThreadsWait#empty? -> bool (3019.0)

同期されるスレッドが存在するならば true をかえします。

...ッドが存在するならば true をかえします。

使用例
require 'thwait'

thread
s = []
3.times {|i|
thread
s << Thread.new { sleep 1; p Thread.current }
}

thall = ThreadsWait.new
p thall.threads.empty? #=> true
thall.join(*threads)
p thall.threads.empty? #=> false...

Thread::Mutex#owned? -> bool (3013.0)

self がカレントスレッドによってロックされている場合に true を返します。 そうでない場合に false を返します。

...self がカレントスレッドによってロックされている場合に true を返します。
そうでない場合に false を返します。


//emlist[例][ruby]{
m = Mutex.new
m.owned? # => false
m.lock
Thread
.new do
m.owned? # => false
end.join
m.owned? # => true
//}...

Thread::Mutex#unlock -> self (3013.0)

mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。

...は出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。

m = Mutex.new
m.lock
Thread
.new do
m.unlock # => ThreadError
end.join

@raise ThreadError self がロックされていない場合や self をロックしたス...

絞り込み条件を変える

Mutex#owned? -> bool (13.0)

self がカレントスレッドによってロックされている場合に true を返します。 そうでない場合に false を返します。

...self がカレントスレッドによってロックされている場合に true を返します。
そうでない場合に false を返します。


//emlist[例][ruby]{
m = Mutex.new
m.owned? # => false
m.lock
Thread
.new do
m.owned? # => false
end.join
m.owned? # => true
//}...

Mutex#unlock -> self (13.0)

mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。

...は出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。

m = Mutex.new
m.lock
Thread
.new do
m.unlock # => ThreadError
end.join

@raise ThreadError self がロックされていない場合や self をロックしたス...
<< < 1 2 3 >>