クラス
- Monitor (16)
- Mutex (8)
- Shell (16)
- Thread (3)
-
Thread
:: Mutex (54) -
Thread
:: Queue (33) -
Thread
:: SizedQueue (53) - ThreadsWait (6)
モジュール
- Etc (66)
- MonitorMixin (11)
- Process (22)
-
Sync
_ m (6)
キーワード
-
CLOCK
_ THREAD _ CPUTIME _ ID (11) -
Mutex
_ m (9) -
NEWS for Ruby 2
. 0 . 0 (11) - Ruby用語集 (11)
-
SC
_ CLOCK _ SELECTION (11) -
SC
_ MEMLOCK (11) -
SC
_ MEMLOCK _ RANGE (11) -
SC
_ MONOTONIC _ CLOCK (11) -
SC
_ READER _ WRITER _ LOCKS (11) -
SC
_ SPIN _ LOCKS (11) -
clock
_ gettime (11) -
debug
_ output _ lock (4) -
debug
_ output _ locked? (4) -
debug
_ output _ try _ lock (4) -
debug
_ output _ unlock (4) - deq (22)
- enq (10)
- enter (11)
-
ignore
_ deadlock (3) - locked? (9)
-
mon
_ enter (16) - monitor (11)
-
next
_ wait (6) - owned? (11)
- pop (22)
- push (10)
-
ruby 1
. 6 feature (11) -
ruby 1
. 8 . 3 feature (11) -
ruby 1
. 8 . 5 feature (11) - shift (22)
- sleep (11)
-
sync
_ ex _ locker (6) -
try
_ lock (9) - unlock (11)
- スレッド (11)
検索結果
先頭5件
-
Thread (38124.0)
-
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。
...時に実行される制御の流れです。
Thread を使うことで並行プログラミングが可能になります。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行......だ
しその例外で終了するスレッドを Thread#join で待っている他の
スレッドがある場合、その待っているスレッドに対して、同じ例外が再度
発生します。
begin
t = Thread.new do
Thread.pass # メインスレッドが確実にjoinす......バッグモード)
ruby インタプリタを -d オプション 付きで起動した場合も同様。
(オプションの詳細に関してはspec/rubycmd を参照)
* Thread.abort_on_exception でフラグを設定する。
* Thread#abort_on_exception で指定
したスレッ... -
Thread
# ignore _ deadlock -> bool (27206.0) -
デッドロック検知を無視する機能のon/offを返します。
...デッドロック検知を無視する機能のon/offを返します。
デフォルト値はfalseで、デッドロックが検知されます。
@see Thread#ignore_deadlock=... -
Thread
:: Mutex # lock -> self (21207.0) -
mutex オブジェクトをロックします。一度に一つのス レッドだけが mutex をロックできます。既にロックされている mutex に対してロックを行おうとしたスレッドは mutex のロックが解放さ れるまで、実行が停止されます。
...す。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
@see Thread::Mutex#unlock... -
Mutex
# lock -> self (18207.0) -
mutex オブジェクトをロックします。一度に一つのス レッドだけが mutex をロックできます。既にロックされている mutex に対してロックを行おうとしたスレッドは mutex のロックが解放さ れるまで、実行が停止されます。
...す。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
@see Thread::Mutex#unlock... -
Process
:: CLOCK _ THREAD _ CPUTIME _ ID -> Integer (12301.0) -
Process.#clock_gettime で使われます。
...Process.#clock_gettime で使われます。
システムによっては定義されていません。... -
Thread
:: Mutex # unlock -> self (9218.0) -
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。
...lock
# critical part
ensure
m.unlock
end
Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。
m = Mutex.new
m.lock
Thread.new do
m.unlock......# => ThreadError
end.join
@raise ThreadError self がロックされていない場合や self をロックしたス
レッド以外から呼ばれた場合に発生します。
また、Signal.#trap に指定したハンドラ内で実行... -
Thread
:: Mutex # try _ lock -> bool (9213.0) -
mutex をロックしようとして、ロックが成功した場合、真を返します。 ロックできなかった場合にはブロックせず偽を返します。
...mutex をロックしようとして、ロックが成功した場合、真を返します。
ロックできなかった場合にはブロックせず偽を返します。
//emlist[例][ruby]{
m = Mutex.new
m.try_lock # => true
m.try_lock # => false
//}... -
Thread
:: Mutex # locked? -> bool (9206.0) -
mutex がロックされている時、真を返します。
...mutex がロックされている時、真を返します。
//emlist[例][ruby]{
m = Mutex.new
m.locked? # => false
m.lock
m.locked? # => true
//}... -
Process
. # clock _ gettime(clock _ id , unit=:float _ second) -> Float | Integer (6324.0) -
POSIX の clock_gettime() 関数の時間を返します。
...POSIX の clock_gettime() 関数の時間を返します。
例:
p Process.clock_gettime(Process::CLOCK_MONOTONIC) #=> 896053.968060096
@param clock_id クロックの種類を以下の定数のいずれかで指定します。
サポートされている定数は OS やバー......:CLOCK_MONOTONIC
SUSv3 to 4, Linux 2.5.63, FreeBSD 3.0, NetBSD 2.0, OpenBSD 3.4, macOS 10.12
: Process::CLOCK_PROCESS_CPUTIME_ID
SUSv3 to 4, Linux 2.5.63, OpenBSD 5.4, macOS 10.12
: Process::CLOCK_THREAD_CPUTIME_ID
SUSv3 to 4, Linux 2.5.63, FreeBSD 7.1, OpenBSD 5.4, macOS 10.12
: Process::CLOCK_V......。
CLOCK_REALTIME のオリジンはエポック (1970-01-01 00:00:00 UTC) と定義されています。
しかし、システムによってうるう秒をカウントするかどうかが異なります。
そのため、結果はシステムによって解釈が異なります。
CLOCK_REALTIM... -
Sync
_ m # sync _ ex _ locker -> Thread | nil (6301.0) -
@todo
@todo -
Mutex
# unlock -> self (6218.0) -
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。
...lock
# critical part
ensure
m.unlock
end
Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。
m = Mutex.new
m.lock
Thread.new do
m.unlock......# => ThreadError
end.join
@raise ThreadError self がロックされていない場合や self をロックしたス
レッド以外から呼ばれた場合に発生します。
また、Signal.#trap に指定したハンドラ内で実行... -
Shell
. debug _ output _ lock -> Mutex (6213.0) -
@todo
...@todo
@see Thread::Mutex#lock... -
Shell
. debug _ output _ try _ lock -> bool (6213.0) -
@todo
...@todo
@see Thread::Mutex#try_lock... -
Shell
. debug _ output _ locked? -> bool (6206.0) -
@todo
...@todo
@see Thread::Mutex#locked?... -
Shell
. debug _ output _ unlock -> Mutex | nil (6206.0) -
@todo
...@todo
@see Thread::Mutex#unlock... -
ruby 1
. 6 feature (5424.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
...((<stable-snapshot|URL:ftp://ftp.netlab.co.jp/pub/lang/ruby/stable-snapshot.tar.gz>)) は、日々更新される安定版の最新ソースです。
== 1.6.8 (2002-12-24) -> stable-snapshot
: 2003-01-22: errno
EAGAIN と EWOULDBLOCK が同じ値のシステムで、EWOULDBLOCK がなくな......LDBLOCK は、EAGAIN
として定義されています。(これは 1.6.7 とは異なる挙動です)
p Errno::EAGAIN
p Errno::EWOULDBLOCK
=> ruby 1.6.7 (2002-03-01) [i586-linux]
Errno::EAGAIN
Errno::EWOULDBLOCK
=> ruby 1.6.8 (2002-12-24......) [i586-linux]
Errno::EAGAIN
-:2: uninitialized constant EWOULDBLOCK at Errno (NameError)
=> ruby 1.6.8 (2003-02-13) [i586-linux]
Errno::EAGAIN
Errno::EAGAIN
== 1.6.7 (2002-03-01) -> 1.6.8 (2002-12-24)
: 2002-10-02: Thread (cygwin)
Cygwin で...