クラス
- Date (2)
- Monitor (3)
-
MonitorMixin
:: ConditionVariable (5) - Time (6)
モジュール
- MonitorMixin (9)
キーワード
- broadcast (1)
- enter (1)
- exit (1)
-
mon
_ enter (1) -
mon
_ exit (1) -
mon
_ locked? (1) -
mon
_ owned? (1) -
mon
_ synchronize (1) -
mon
_ try _ enter (1) - monday? (1)
- month (2)
-
new
_ cond (1) - signal (1)
- strftime (1)
- synchronize (1)
-
to
_ a (1) -
try
_ enter (1) -
try
_ mon _ enter (1) - wait (1)
-
wait
_ until (1) -
wait
_ while (1) - wday (1)
検索結果
先頭5件
-
MonitorMixin
# mon _ exit -> () (72943.0) -
モニターのロックを解放します。
モニターのロックを解放します。
mon_enter でロックした回数だけ mon_exit を
呼ばなければモニターは解放されません。
モニターが解放されればモニターのロック待ちになっていた
スレッドが一つ実行を再開します。
@raise ThreadError ロックを持っていないスレッドが呼びだした場合に発生します -
Time
# mon -> Integer (72925.0) -
月を整数で返します。
月を整数で返します。
//emlist[][ruby]{
t = Time.local(2000,1,2,3,4,5) # => 2000-01-02 03:04:05 +0900
p t.month # => 1
p t.mon # => 1
//} -
MonitorMixin
# mon _ synchronize { . . . } -> object (63925.0) -
モニターをロックし、ブロックを実行します。実行後に必ずモニターのロックを解放します。
モニターをロックし、ブロックを実行します。実行後に必ずモニターのロックを解放します。
ブロックの評価値を返り値として返します。
@see MonitorMixin#mon_enter -
Date
# mon -> Integer (63907.0) -
月を返します (1-12)。
月を返します (1-12)。 -
MonitorMixin
:: ConditionVariable # wait _ while { . . . } -> () (63604.0) -
モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たしている間停止します。
モニタのロックを開放し、現在のスレッドを
ブロックで指定した条件を満たしている間停止します。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果によってこのメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。
@raise ThreadError ロックを持っていないスレッドがこのメソッドを呼びだした場合に発生します
@see MonitorMixin::ConditionV... -
Monitor
# exit -> () (54760.0) -
MonitorMixin#mon_exit の別名です。
MonitorMixin#mon_exit の別名です。
enter でロックした回数だけ exit を呼ばなければモニターは解放されません。
モニターが解放されればモニターのロック待ちになっていた
スレッドが一つ実行を再開します。
@raise ThreadError ロックを持っていないスレッドが呼びだした場合に発生します
//emlist[例][ruby]{
require 'monitor'
mon = Monitor.new
mon.enter
mon.enter
mon.exit
mon.exit
mon.exit # => current thread not owner... -
MonitorMixin
# mon _ enter -> () (54661.0) -
モニターをロックします。
モニターをロックします。
一度に一つのスレッドだけがモニターをロックできます。
既にモニターがロックされている場合は、ロックが開放されるまで
そのスレッドは待ちます。
Thread::Mutex#lock に相当します。
Mutex#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである場合、
何度でもロックできる点です。ロックした回数だけ mon_exit を呼ばなければモニターは
解放されません。
//emlist[例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin)
buf.mon_ent... -
MonitorMixin
# synchronize { . . . } -> object (54625.0) -
モニターをロックし、ブロックを実行します。実行後に必ずモニターのロックを解放します。
モニターをロックし、ブロックを実行します。実行後に必ずモニターのロックを解放します。
ブロックの評価値を返り値として返します。
@see MonitorMixin#mon_enter -
MonitorMixin
# mon _ try _ enter -> bool (54610.0) -
モニターのロックを取得しようと試みます。 ロックに成功した(ロックが開放状態だった、もしくは ロックを取得していたスレッドが自分自身であった)場合には 真を返します。
モニターのロックを取得しようと試みます。
ロックに成功した(ロックが開放状態だった、もしくは
ロックを取得していたスレッドが自分自身であった)場合には
真を返します。
ロックができなかった場合は偽を返し、実行を継続します。この場合には
スレッドはブロックしません。 -
MonitorMixin
# try _ mon _ enter -> bool (54610.0) -
モニターのロックを取得しようと試みます。 ロックに成功した(ロックが開放状態だった、もしくは ロックを取得していたスレッドが自分自身であった)場合には 真を返します。
モニターのロックを取得しようと試みます。
ロックに成功した(ロックが開放状態だった、もしくは
ロックを取得していたスレッドが自分自身であった)場合には
真を返します。
ロックができなかった場合は偽を返し、実行を継続します。この場合には
スレッドはブロックしません。 -
MonitorMixin
# mon _ locked? -> bool (54607.0) -
モニターがロックされているときに true を返します。
モニターがロックされているときに true を返します。 -
MonitorMixin
# mon _ owned? -> bool (54607.0) -
カレントスレッドがモニターをロックしているときに true を返します。
カレントスレッドがモニターをロックしているときに true を返します。 -
MonitorMixin
:: ConditionVariable # wait(timeout = nil) -> bool (54604.0) -
モニタのロックを開放し、現在のスレッドを停止します。
モニタのロックを開放し、現在のスレッドを停止します。
これを呼ぶスレッドはモニタのロックを保持している必要があります。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast
で起こされるまでスレッドは停止し続けます。
timeout を与えた場合は最大 timeout 秒まで停止した後にスレッドを
再開します。
実行を再開したスレッドはモニタのロックを保持した状態になります。
これによって危険領域(critical section)上で動作している
スレッドはただ一つになり... -
MonitorMixin
:: ConditionVariable # wait _ until { . . . } -> () (54304.0) -
モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たすまで停止します。
モニタのロックを開放し、現在のスレッドを
ブロックで指定した条件を満たすまで停止します。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果によってこのメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。
@see MonitorMixin::ConditionVariable#wait -
Time
# strftime(format) -> String (45784.0) -
時刻を format 文字列に従って文字列に変換した結果を返します。
時刻を format 文字列に従って文字列に変換した結果を返します。
@param format フォーマット文字列を指定します。使用できるものは 以下の通りです。
* %A: 曜日の名称(Sunday, Monday ... )
* %a: 曜日の省略名(Sun, Mon ... )
* %B: 月の名称(January, February ... )
* %b: 月の省略名(Jan, Feb ... )
* %C: 世紀 (2009年であれば 20)
* %c: 日付と時刻 (%a %b %e %T %Y)
* %D: 日付 (%m/%d/%y)
* ... -
MonitorMixin
:: ConditionVariable # signal -> () (45304.0) -
その条件変数で待っているスレッドがあれば実行を再開させます。
その条件変数で待っているスレッドがあれば実行を再開させます。
複数のスレッドが待っている場合には1つのスレッドのみ
実行を再開します。
@see MonitorMixin::ConditionVariable#broadcast -
MonitorMixin
# new _ cond -> MonitorMixin :: ConditionVariable (37204.0) -
モニターに関連付けられた、新しい MonitorMixin::ConditionVariable を生成して返します。
モニターに関連付けられた、新しい MonitorMixin::ConditionVariable を生成して返します。 -
Time
# month -> Integer (36925.0) -
月を整数で返します。
月を整数で返します。
//emlist[][ruby]{
t = Time.local(2000,1,2,3,4,5) # => 2000-01-02 03:04:05 +0900
p t.month # => 1
p t.mon # => 1
//} -
Monitor
# enter -> () (36406.0) -
MonitorMixin#mon_enter の別名です。
MonitorMixin#mon_enter の別名です。
Thread::Mutex#lock に相当します。
Thread::Mutex#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである場合、
何度でもロックできる点です。ロックした回数だけ Monitor#exit を呼ばなければモニターは
解放されません。
//emlist[例][ruby]{
require 'monitor'
mon = Monitor.new
mon.enter
mon.enter
//}
Thread::Mutex#lock ではデッドロックが起きます。
//emlist[Mu... -
Monitor
# try _ enter -> bool (36352.0) -
MonitorMixin#mon_try_enter の別名です。
MonitorMixin#mon_try_enter の別名です。 -
Time
# monday? -> bool (36304.0) -
self の表す時刻が月曜日である場合に true を返します。 そうでない場合に false を返します。
self の表す時刻が月曜日である場合に true を返します。
そうでない場合に false を返します。
//emlist[][ruby]{
t = Time.local(2003, 8, 4) # => 2003-08-04 00:00:00 +0900
p t.monday? # => true
//} -
MonitorMixin
:: ConditionVariable # broadcast -> () (36004.0) -
その条件変数で 待っている全てのスレッドの実行を再開します。
その条件変数で
待っている全てのスレッドの実行を再開します。
@see MonitorMixin::ConditionVariable#signal -
Date
# month -> Integer (27907.0) -
月を返します (1-12)。
月を返します (1-12)。 -
Time
# wday -> Integer (18640.0) -
曜日を0(日曜日)から6(土曜日)の整数で返します。
曜日を0(日曜日)から6(土曜日)の整数で返します。
//emlist[][ruby]{
p sun = Time.new(2017, 9, 17, 10, 34, 15, '+09:00') # => 2017-09-17 10:34:15 +0900
p sun.wday # => 0
p mon = Time.new(2017, 9, 18, 10, 34, 15, '+09:00') # => 2017-09-18 10:34:15 +0900
p mon.wday ... -
Time
# to _ a -> Array (18022.0) -
時刻を10要素の配列で返します。
時刻を10要素の配列で返します。
その要素は順序も含めて以下の通りです。
* sec: 秒 (整数 0-60) (60はうるう秒)
* min: 分 (整数 0-59)
* hour: 時 (整数 0-23)
* mday: 日 (整数)
* mon: 月 (整数 1-12)
* year: 年 (整数 2000年=2000)
* wday: 曜日 (整数 0-6)
* yday: 年内通算日 (整数 1-366)
* isdst: 夏時間であるかどうか (true/false)
* zone: タイムゾーン (文字列)
...