クラス
- Monitor (16)
- Mutex (8)
- Shell (16)
- Thread (6)
-
Thread
:: Mutex (54) -
Thread
:: Queue (33) -
Thread
:: SizedQueue (53) - ThreadsWait (6)
モジュール
- Etc (66)
- MonitorMixin (11)
- Process (22)
-
Sync
_ m (12)
キーワード
-
CLOCK
_ THREAD _ CPUTIME _ ID (11) - Monitor (11)
- Mutex (9)
-
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) -
ignore
_ deadlock= (3) - locked? (9)
-
mon
_ enter (16) - monitor (11)
-
next
_ wait (6) - owned? (11)
- pop (22)
- push (10)
-
rb
_ thread _ deadlock (11) -
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) -
sync
_ ex _ locker= (6) -
try
_ lock (9) - unlock (11)
- スレッド (11)
検索結果
先頭5件
-
Thread (38118.0)
-
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。
...時に実行される制御の流れです。
Thread を使うことで並行プログラミングが可能になります。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行......だ
しその例外で終了するスレッドを Thread#join で待っている他の
スレッドがある場合、その待っているスレッドに対して、同じ例外が再度
発生します。
begin
t = Thread.new do
Thread.pass # メインスレッドが確実にjoinす......ン 付きで起動した場合も同様。
(オプションの詳細に関してはspec/rubycmd を参照)
* Thread.abort_on_exception でフラグを設定する。
* Thread#abort_on_exception で指定
したスレッドのフラグを設定する。
上記3つのいずれかが設... -
Thread
# ignore _ deadlock=(bool) (27118.0) -
デッドロック検知を無視する機能をon/offします。デフォルト値はfalseです。
...。
trueを渡すとデッドロックを検知しなくなります。
//emlist[][ruby]{
Thread.ignore_deadlock = true
queue = Thread::Queue.new
trap(:SIGUSR1){queue.push "Received signal"}
# ignore_deadlockがfalseだとエラーが発生する
puts queue.pop
//}
@see Thread#ignore_deadlock... -
Thread
# ignore _ deadlock -> bool (27106.0) -
デッドロック検知を無視する機能のon/offを返します。
...デッドロック検知を無視する機能のon/offを返します。
デフォルト値はfalseで、デッドロックが検知されます。
@see Thread#ignore_deadlock=... -
Thread
:: Mutex # lock -> self (21107.0) -
mutex オブジェクトをロックします。一度に一つのス レッドだけが mutex をロックできます。既にロックされている mutex に対してロックを行おうとしたスレッドは mutex のロックが解放さ れるまで、実行が停止されます。
...す。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
@see Thread::Mutex#unlock... -
Mutex
# lock -> self (18107.0) -
mutex オブジェクトをロックします。一度に一つのス レッドだけが mutex をロックできます。既にロックされている mutex に対してロックを行おうとしたスレッドは mutex のロックが解放さ れるまで、実行が停止されます。
...す。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
@see Thread::Mutex#unlock... -
Process
:: CLOCK _ THREAD _ CPUTIME _ ID -> Integer (12201.0) -
Process.#clock_gettime で使われます。
...Process.#clock_gettime で使われます。
システムによっては定義されていません。... -
static void rb
_ thread _ deadlock(void) (12200.0) -
-
Thread
:: Mutex # unlock -> self (9118.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 (9113.0) -
mutex をロックしようとして、ロックが成功した場合、真を返します。 ロックできなかった場合にはブロックせず偽を返します。
...mutex をロックしようとして、ロックが成功した場合、真を返します。
ロックできなかった場合にはブロックせず偽を返します。
//emlist[例][ruby]{
m = Mutex.new
m.try_lock # => true
m.try_lock # => false
//}... -
Thread
:: Mutex # locked? -> bool (9106.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 (6212.0) -
POSIX の clock_gettime() 関数の時間を返します。
...POSIX の clock_gettime() 関数の時間を返します。
例:
p Process.clock_gettime(Process::CLOCK_MONOTONIC) #=> 896053.968060096
@param clock_id クロックの種類を以下の定数のいずれかで指定します。
サポートされている定数は OS やバー......CLOCK_REALTIME
SUSv2 to 4, Linux 2.5.63, FreeBSD 3.0, NetBSD 2.0, OpenBSD 2.1, macOS 10.12
: Process::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_VIRTUAL
FreeBSD 3.0, OpenBSD 2.1
: Process::CLOCK_PROF
FreeBSD 3.0, OpenBSD 2.1
: Process::CLOCK_REALTIME_FAST
FreeBSD 8.1
: Process::CLOCK_REALTIME_PRECISE
FreeBSD 8.1
: Process::CLOCK_REALTIME_... -
Sync
_ m # sync _ ex _ locker -> Thread | nil (6201.0) -
@todo
@todo -
Sync
_ m # sync _ ex _ locker=(thread) (6201.0) -
@todo
@todo