810件ヒット
[1-100件を表示]
(0.106秒)
ライブラリ
クラス
- File (12)
-
File
:: Stat (24) - Mutex (2)
- Pathname (12)
- SignalException (24)
- Thread (235)
-
Thread
:: ConditionVariable (24) -
Thread
:: Mutex (10) -
Thread
:: Queue (12) - ThreadGroup (36)
- ThreadsWait (60)
-
WIN32OLE
_ EVENT (12)
キーワード
- <=> (12)
- Interrupt (12)
-
NEWS for Ruby 2
. 0 . 0 (12) - Status (12)
- Telnet (2)
- Thread (12)
- ThreadGroup (12)
-
abort
_ on _ exception (12) -
abort
_ on _ exception= (12) - add (12)
-
all
_ waits (18) - backtrace (12)
-
backtrace
_ locations (24) - birthtime (12)
- broadcast (12)
- ctime (12)
- detach (12)
- empty? (6)
- enclose (12)
- exec (48)
- exit (12)
- finished? (6)
- flock (12)
- fork (24)
- join (30)
-
join
_ nowait (6) - kill (12)
- list (12)
- new (18)
-
next
_ wait (6) -
num
_ waiting (12) -
pipeline
_ start (24) - priority (12)
- priority= (12)
- raise (12)
-
rb
_ thread _ sleep (12) -
rb
_ thread _ sleep _ forever (12) -
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 3 feature (12) - run (12)
-
safe
_ level (7) - signal (12)
- signm (12)
- signo (12)
- status (12)
- stop (12)
- terminate (12)
- threads (6)
- timeout (21)
- tsort (12)
- value (12)
- wait (12)
- wait2 (12)
- waitpid (12)
- waitpid2 (12)
- wakeup (12)
- スレッド (12)
- 制御構造 (12)
検索結果
先頭5件
-
tsort (26120.0)
-
tsort はトポロジカルソートと強連結成分に関するモジュールを提供します。
...tsort はトポロジカルソートと強連結成分に関するモジュールを提供します。
=== Example
//emlist[][ruby]{
require 'tsort'
class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end
{1=>[2, 3],......=>[]}.tsort
#=> [3, 2, 1, 4]
{1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}.strongly_connected_components
#=> [[4], [2, 3], [1]]
//}
=== より現実的な例
非常に単純な `make' に似たツールは以下のように実装できます。
//emlist[][ruby]{
require 'tsort'
class Make
def initialize......uts_time = inputs.map {|f| File.mtime f}.max
begin
outputs_time = outputs.map {|f| File.mtime f}.min
rescue Errno::ENOENT
outputs_time = nil
end
if outputs_time == nil ||
inputs_time != nil && outputs_time <= inputs_time
sleep... -
Mutex
# sleep(timeout = nil) -> Integer (21225.0) -
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
...リープして、実行後にまたロックします。
@param timeout スリープする秒数を指定します。省略するとスリープし続けます。
@return スリープしていた秒数を返します。
@raise ThreadError 自身がカレントスレッドによってロックさ......グナルを受信した場合などに実行が再
開(spurious wakeup)される場合がある点に注意してください。
//emlist[例][ruby]{
m = Mutex.new
th = Thread.new do
m.lock
m.sleep(2)
end
th.status # => "run"
sleep 1
th.status # => "sleep"
sleep 1
th.status # => false
//}... -
Thread
:: Mutex # sleep(timeout = nil) -> Integer (21225.0) -
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
...リープして、実行後にまたロックします。
@param timeout スリープする秒数を指定します。省略するとスリープし続けます。
@return スリープしていた秒数を返します。
@raise ThreadError 自身がカレントスレッドによってロックさ......グナルを受信した場合などに実行が再
開(spurious wakeup)される場合がある点に注意してください。
//emlist[例][ruby]{
m = Mutex.new
th = Thread.new do
m.lock
m.sleep(2)
end
th.status # => "run"
sleep 1
th.status # => "sleep"
sleep 1
th.status # => false
//}......にまたロックします。
@param timeout スリープする秒数を指定します。省略するとスリープし続けます。
@return タイムアウトした時は nil を、それ以外はスリープしていた秒数を返します。
@raise ThreadError 自身がカレントスレ... -
Kernel
. # sleep -> Integer (18226.0) -
sec 秒だけプログラムの実行を停止します。
...実行を停止します。
sec が省略された場合、他スレッドからの Thread#run
などで明示的に起こさない限り永久にスリープします。Thread#runを呼ぶとその時点で
sleepの実行が中断されます。
@param sec 停止する秒数を非負の数値で......省略された場合、永久にスリープします。
@return 実際に停止していた秒数 (整数に丸められた値) です。
//emlist[例][ruby]{
it = Thread.new do
sleep
puts 'it_end'
end
re = sleep 2.11
puts re
it.run
re2 = sleep 0.76
puts re2
#=> 2
# it_end
# 1
//}... -
Kernel
. # sleep(sec) -> Integer (18226.0) -
sec 秒だけプログラムの実行を停止します。
...実行を停止します。
sec が省略された場合、他スレッドからの Thread#run
などで明示的に起こさない限り永久にスリープします。Thread#runを呼ぶとその時点で
sleepの実行が中断されます。
@param sec 停止する秒数を非負の数値で......省略された場合、永久にスリープします。
@return 実際に停止していた秒数 (整数に丸められた値) です。
//emlist[例][ruby]{
it = Thread.new do
sleep
puts 'it_end'
end
re = sleep 2.11
puts re
it.run
re2 = sleep 0.76
puts re2
#=> 2
# it_end
# 1
//}... -
void rb
_ thread _ sleep(int sec) (12200.0) -
-
void rb
_ thread _ sleep _ forever(void) (12200.0) -
-
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (9254.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...c 秒の期限付きで実行します。
ブロックの実行時間が制限を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはい......@param exception_class タイムアウトした時、発生させる例外を指定します.
例 長い計算のタイムアウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t = 5
min =......printf "%d: pi = %f\n", min[0] + min[1], min[0]*4.0/(min[0]+min[1])
#例
#=> 417519: pi = 3.141443
例 独自の例外を発生させるタイムアウト
#!/usr/bin/env ruby
require 'timeout'
class MYError < Exception;end
begin
Timeout.timeout(5, MYError) {
sleep(30).......
@param exception_class タイムアウトした時、発生させる例外を指定します.
@param message エラーメッセージを指定します.省略した場合は
"execution expired" になります.
例 長い計算のタイムアウト
require 'timeout'
def calc_p... -
Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object (9254.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...c 秒の期限付きで実行します。
ブロックの実行時間が制限を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはい.......
@param exception_class タイムアウトした時、発生させる例外を指定します.
@param message エラーメッセージを指定します.省略した場合は
"execution expired" になります.
例 長い計算のタイムアウト
require 'timeout'
def calc_p......printf "%d: pi = %f\n", min[0] + min[1], min[0]*4.0/(min[0]+min[1])
#例
#=> 417519: pi = 3.141443
例 独自の例外を発生させるタイムアウト
#!/usr/bin/env ruby
require 'timeout'
class MYError < Exception;end
begin
Timeout.timeout(5, MYError) {
sleep(30)... -
Thread
# terminate -> self (9212.0) -
スレッドの実行を終了させます。終了時に ensure 節が実行されます。
...す。
ただし、スレッドは終了処理中(aborting)にはなりますが、
直ちに終了するとは限りません。すでに終了している場合は何もしません。このメソッドにより
終了したスレッドの Thread#value の返り値は不定です。
自身がメ......exit(0)
により終了します。
Kernel.#exit と違い例外 SystemExit を発生しません。
th1 = Thread.new do
begin
sleep 10
ensure
p "this will be displayed"
end
end
sleep 0.1
th1.kill
#=> "this will be displayed"
@see Kernel.#exit, Kernel.#exit!...