るりまサーチ

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

別のキーワード

  1. drb thread
  2. thread exit
  3. thread kill
  4. thread join
  5. thread abort_on_exception

ライブラリ

クラス

モジュール

検索結果

<< 1 2 > >>

Thread.kill(thread) -> Thread (27387.0)

指定したスレッド thread に対して Thread#exit を呼びます。終了したスレッドを返します。

...指定したスレッド thread に対して Thread#exit を呼びます。終了したスレッドを返します。

@param thread 終了したい Thread オブジェクトを指定します。

th = Thread.new do
end

p Thread.kill(th) #=> #<Thread:0x40221bc8 dead>...

Thread#exit -> self (27144.0)

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

...レッドの Thread#value の返り値は不定です。
自身がメインスレッドであるか最後のスレッドである場合は、プロセスを Kernel.#exit(0)
により終了します。

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

th1 = Thread.new do
begi...
...n
sleep 10
ensure
p "this will be displayed"
end
end

sleep 0.1
th1.kill

#=> "this will be displayed"

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

Thread#kill -> self (27144.0)

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

...レッドの Thread#value の返り値は不定です。
自身がメインスレッドであるか最後のスレッドである場合は、プロセスを Kernel.#exit(0)
により終了します。

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

th1 = Thread.new do
begi...
...n
sleep 10
ensure
p "this will be displayed"
end
end

sleep 0.1
th1.kill

#=> "this will be displayed"

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

Thread#terminate -> self (12044.0)

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

...レッドの Thread#value の返り値は不定です。
自身がメインスレッドであるか最後のスレッドである場合は、プロセスを Kernel.#exit(0)
により終了します。

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

th1 = Thread.new do
begi...
...n
sleep 10
ensure
p "this will be displayed"
end
end

sleep 0.1
th1.kill

#=> "this will be displayed"

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

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

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

...て nil を返します。

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

例:
a = Thread.new { raise("die now") }
b = Thread.new { 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?...

絞り込み条件を変える

1.6.8から1.8.0への変更点(まとめ) (192.0)

1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))

...od オブジェクト限定でした。
これに伴い Proc#to_proc が追加されました。

: 終了ステータス [compat]

raise SystemExit したときに終了ステータス 1 で終了するようになりました。
((<ruby-dev:16776>))

: ((<"rescue/ensure on begin .. end while...
...ystemExit#status|SystemExit/status>)) [new]
追加

=== Thread

: ((<Thread#keys|Thread/keys>)) [new]
追加。Thread固有データのキーの配列を返します。


: ((<Thread#terminate|Thread/terminate>)) [new]

追加。Thread#kill と同じ。

: ((<Thread#group|Thread/grou...
...p>)) [new]
追加

=== ThreadGroup

: ((<ThreadGroup#enclose|ThreadGroup/enclose>)) [new]
: ((<ThreadGroup#enclosed?|ThreadGroup/enclosed?>)) [new]

追加 ((<ruby-dev:20655>))

Thread
Group への Thread 追加/削除を(freeze せずに)禁止します。

=== Time

: ((<Time#getgm|Time/getgm...

irb (108.0)

irb は Interactive Ruby の略です。 irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。

...# サブirbの立ちあげ
irb#1(main):001:0> jobs # サブirbのリスト
#0->irb on main (#<Thread:0x400fb7e4> : stop)
#1->irb#1 on main (#<Thread:0x40125d64> : running)
nil
irb#1(main):002:0> fg 0 # jobのスイッチ
nil
irb(main):002:0>...
...<Thread:0x4011d54c> : stop)
#3->irb#3 on #<Foo:0x4010af3c> (#<Thread:0x4010a1e0> : running)
nil
irb#3(#<Foo:0x4010af3c>):002:0> foo # f.fooの実行
nil
irb#3(#<Foo:0x4010af3c>):003:0> bar # f.barの実行
barnil
irb#3(#<Foo:0x4010af3c>):004:0> kill 1, 2, 3# jobのkill...
...nil
irb(main):009:0> jobs
#0->irb on main (#<Thread:0x400fb7e4> : running)
nil
irb(main):010:0> exit # 終了
$

=== irb で使用可能なコマンド一覧

この一覧に記述されているコマンドは、irb のプロンプトでレシーバなしで使
...

終了処理 (90.0)

終了処理 Ruby はスクリプトの終端に達した場合や捕捉していない例外が発生した場 合に終了します(関数 Kernel.#exit や Kernel.#abort 、メインスレッドに対する Thread.kill などは SystemExit 例外を発生させます)。終了時には以下 の処理が順に実行されます。

...Kernel.#exit や Kernel.#abort
、メインスレッドに対する Thread.kill などは
SystemExit 例外を発生させます)。終了時には以下
の処理が順に実行されます。

(1) すべてのスレッドを Thread.kill する。
(1) Ruby の擬似シグナル SIGEXIT のハ...
...いればそれを実
行する(Kernel.#trap を参照)。
(1) d:spec/control#END ブロック(END { ... } または関数
Kernel.#at_exit で指定したブロック)が登録されていれば、
そのブロックを登録とは逆順に実行する。このブロックの実...
...(1) exit(3) により終了する。このとき渡される終了ステータス値は終了方法によります。例えば、
* スクリプトの終端に達した場合は 0
* Kernel.#exit に渡した引数
* SystemExit による例外以外は 1

関数 Kernel.#exit! に...

セキュリティモデル (24.0)

セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。

...時の$SAFEの値は0
* 各スレッドは作られた時点での親スレッドの$SAFEの値を引き継ぐ
//emlist[][ruby]{
$SAFE = 0
th = Thread.new{
p $SAFE # => 0
$SAFE = 1
}
th.join
p $SAFE # => 0
//}
* $SAFE の値を現在の値より小さく変更する事はできない
//emlis...
...s.#setsid
Process.#setpriority Process.#egid= Process.#kill
* 危険なパスからの Kernel.#load
* 汚染された文字列を引数にしての Kernel.#load (ラップされていても)
* Kernel.#syscall
* Kernel.#exit!
* Kernel.#trap

==== レベル 3

生成される全て...
...グラムの一部だけを高いセーフレベルで実行することが可
能です。

//emlist[例][ruby]{
def safe(level)
result = nil
Thread
.start {
$SAFE = level
result = yield
}.join
result
end

lib = "insecure_library".taint # 外部から受け取った文字列(仮)
saf...

Timeout.#timeout(sec, exception_class = nil) {|i| ... } -> object (18.0)

ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。

...out(5, MYError) {
sleep(30)
}
rescue MYError => err
puts "MYError"
puts err
end

=== 注意

timeout による割り込みは Thread によって実現されています。
C 言語レベルで実装され、
Ruby のスレッドが割り込めない処理に対して timeout...
...", "w"){|fp|
fp.print <<SHELL_EOT
#!/bin/bash

S="scale=10"
M=32767

trap 'echo "$S; $m1/($m1+$m2)*4" | bc ; echo "count = $((m1+m2))" ; exit 0' INT
m1=0
m2=0

while true
do
x="($RANDOM/$M)"
y="($RANDOM/$M)"
c=$(echo "$S;$x^2+$y^2 < 1.0" | bc)
echo $x $y $c
if...
....pid
while line = com.gets
print line
end
}
rescue Timeout::Error => err
puts "timeout: shell execution."
Process.kill('SIGINT', pid)
printf "[result]\t%s", com.read
com.close unless com.nil?
end

#止まっているか確認する。
#system("ps au")...

絞り込み条件を変える

<< 1 2 > >>