るりまサーチ

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

別のキーワード

  1. drb thread
  2. thread exit
  3. etc sc_thread_threads_max
  4. thread join
  5. thread kill

ライブラリ

クラス

モジュール

キーワード

検索結果

Thread#exit -> self (54250.0)

スレッドの実行を終了させます。終了時に ensure 節が実行されます。

...

ただし、スレッドは終了処理中(aborting)にはなりますが、
直ちに終了するとは限りません。すでに終了している場合は何もしません。このメソッドにより
終了したスレッドの Thread#value の返り値は不定です。
自身がメイ...
...#exit(0)
により終了します。

Kernel.#exit と違い例外 SystemExit を発生しません。

t
h1 = Thread.new do
begin
sleep 10
ensure
p "this will be displayed"
end
end

sleep 0.1
t
h1.kill

#=> "this will be displayed"

@see Kernel.#exit, Kernel.#exit!...

Thread#terminate -> self (42250.0)

スレッドの実行を終了させます。終了時に ensure 節が実行されます。

...

ただし、スレッドは終了処理中(aborting)にはなりますが、
直ちに終了するとは限りません。すでに終了している場合は何もしません。このメソッドにより
終了したスレッドの Thread#value の返り値は不定です。
自身がメイ...
...#exit(0)
により終了します。

Kernel.#exit と違い例外 SystemExit を発生しません。

t
h1 = Thread.new do
begin
sleep 10
ensure
p "this will be displayed"
end
end

sleep 0.1
t
h1.kill

#=> "this will be displayed"

@see Kernel.#exit, Kernel.#exit!...

Thread#status -> String | false | nil (36239.0)

生きているスレッドの状態を文字列 "run"、"sleep", "aborting" のいず れかで返します。正常終了したスレッドに対して false、例外によ り終了したスレッドに対して nil を返します。

...orting" のいず
れかで返します。正常終了したスレッドに対して false、例外によ
り終了したスレッドに対して nil を返します。

Thread
#alive? が真を返すなら、このメソッドも真です。

例:
a = Thread.new { raise("die now") }
b = Thread.n...
... Thread.stop }
c = Thread.new { Thread.exit }
d = Thread.new { sleep }
d.kill #=> #<Thread:0x401b3678 aborting>
a.status #=> nil
b.status #=> "sleep"
c.status #=> false
d.status #=> "aborting"
Thread
.current...
....status #=> "run"

@see Thread#alive?, Thread#stop?...

Thread#kill -> self (36050.0)

スレッドの実行を終了させます。終了時に ensure 節が実行されます。

...

ただし、スレッドは終了処理中(aborting)にはなりますが、
直ちに終了するとは限りません。すでに終了している場合は何もしません。このメソッドにより
終了したスレッドの Thread#value の返り値は不定です。
自身がメイ...
...#exit(0)
により終了します。

Kernel.#exit と違い例外 SystemExit を発生しません。

t
h1 = Thread.new do
begin
sleep 10
ensure
p "this will be displayed"
end
end

sleep 0.1
t
h1.kill

#=> "this will be displayed"

@see Kernel.#exit, Kernel.#exit!...

Monitor#exit -> () (24254.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 (ThreadError)
//}...
...を解放します。

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 (ThreadError)
//}...

絞り込み条件を変える

Monitor#mon_exit -> () (12239.0)

モニターのロックを解放します。

...を解放します。

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 (ThreadError)
//}...

Monitor#enter -> () (6143.0)

モニターをロックします。

...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[Mutex でデッドロックする例][ruby]{
m = Mutex.new
m.lock
m.lock # => deadlock; recursive locking (ThreadError)
//}...
...ッドは待ちます。

Thread
::Mutex#lock に相当します。
Thread
::Mutex#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである場合、
何度でもロックできる点です。ロックした回数だけ Monitor#exit を呼ばなければ...

Monitor#mon_enter -> () (6143.0)

モニターをロックします。

...ッドは待ちます。

Thread
::Mutex#lock に相当します。
Thread
::Mutex#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである場合、
何度でもロックできる点です。ロックした回数だけ Monitor#exit を呼ばなければ...
...されません。

//emlist[例][ruby]{
require 'monitor'
mon = Monitor.new
mon.enter
mon.enter
//}

Thread
::Mutex#lock ではデッドロックが起きます。

//emlist[Mutex でデッドロックする例][ruby]{
m = Mutex.new
m.lock
m.lock # => deadlock; recursive locking (ThreadError)
//}...

MonitorMixin#mon_enter -> () (6119.0)

モニターをロックします。

...スレッドは待ちます。

Thread
::Mutex#lock に相当します。
Mutex#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである場合、
何度でもロックできる点です。ロックした回数だけ mon_exit を呼ばなければモニ...
...

//emlist[例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin)
buf.mon_enter
buf.mon_enter
//}

Mutex#lock ではデッドロックが起きます。

//emlist[Mutex でデッドロックする例][ruby]{
m = Mutex.new
m.lock
m.lock # => deadlock; recursive locking (ThreadError)
//}...