るりまサーチ

最速Rubyリファレンスマニュアル検索!
2974件ヒット [1-100件を表示] (0.033秒)
トップページ > クエリ:スレッド[x]

別のキーワード

  1. スレッド thread
  2. スレッド spec/rubycmd
  3. スレッド spec/terminate

ライブラリ

モジュール

キーワード

検索結果

<< 1 2 3 ... > >>

スレッド (15305.0)

スレッド スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Ruby ではスレッドはThread クラスのインスタンスとして表されます。

...スレッド
スレッド
とはメモリ空間を共有して同時に実行される制御の流れです。
Ruby ではスレッドはThread クラスのインスタンスとして表されます。


=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装...
...おり、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ラ...
...リから GVL を操作できるので、複数のスレッド
同時に実行するような拡張ライブラリは作成可能です。

=== スケジューリング
Ruby のスレッドスケジューリングはネイティブスレッドのそれを利用しています。
よって詳細...

Thread (290.0)

スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。

...スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Thread を使うことで並行プログラミングが可能になります。


=== 実装
ネイティブスレッドを用いて実装されていますが、...
...おり、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ラ...
...リから GVL を操作できるので、複数のスレッド
同時に実行するような拡張ライブラリは作成可能です。

=== スケジューリング
Ruby のスレッドスケジューリングはネイティブスレッドのそれを利用しています。
よって詳細...

Thread#priority -> Integer (70.0)

スレッドの優先度を返します。この値が大きいほど優先度が高くなります。 メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッドの priority を引き継ぎます。

...
スレッド
の優先度を返します。この値が大きいほど優先度が高くなります。
メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッド
priority を引き継ぎます。

@param val スレッドの優先度を指定...

Thread#priority=(val) (70.0)

スレッドの優先度を返します。この値が大きいほど優先度が高くなります。 メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッドの priority を引き継ぎます。

...
スレッド
の優先度を返します。この値が大きいほど優先度が高くなります。
メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッド
priority を引き継ぎます。

@param val スレッドの優先度を指定...

Thread::ConditionVariable (70.0)

スレッドの同期機構の一つである状態変数を実現するクラスです。

...スレッドの同期機構の一つである状態変数を実現するクラスです。

以下も ConditionVariable を理解するのに参考になります。

https://ruby-doc.com/docs/ProgrammingRuby/html/tut_threads.html#UF

=== Condition Variable とは

あるスレッド A が排他領...
...とします。スレッド A は現在空いていない
リソースが必要になったので空くまで待つことにしたとします。これはうまくいきません。
なぜなら、スレッド A は排他領域で動いているわけですから、他のスレッドは動くこと...
...ソースを空けることもできません。スレッド A がリソースの空きを
待っていても、いつまでも空くことはありません。

以上のような状況を解決するのが Condition Variable です。

スレッド
a で条件(リソースが空いているかな...

絞り込み条件を変える

Ruby用語集 (66.0)

Ruby用語集 A B C D E F G I J M N O R S Y

...↔サブクラス

→継承

: スレッド
: thread
同時に存在して並行的に実行されうる制御の流れ。スレッド間でメモリーは共有される。

参照:spec/thread

: スレッドセーフ
: thread safe
複数のスレッドが並行に実行されても問...
...: thread local
変数のスコープなどがスレッドごとに別々であること。

例えば特殊変数のうち $0(現在実行中のスクリプトのファイル名)は
グローバルスコープであり、どのスレッドから参照しても同じ値であるのに...
...対し、
$1(正規表現検索における 1 番目のキャプチャー文字列)はスレッドローカル
であり、スレッドごとに別である。

: 正規表現
: regular expression
文字列のパターンを表現する言語。
また、その言語で記述された...

ThreadError (66.0)

Thread 関連のエラーが起きたときに発生します。

...発生します。

* カレントスレッドを Thread#join しようとしたとき
* Thread#join でデッドロックしそうになったとき
* 終了したスレッドを Thread#wakeup あるいは Thread#run しようとしたとき
* スレッドが一つしかないのに Thread....
...とき
* Kernel.#throw がスレッド内で Kernel.#catch されないとき
* スレッドから return しようとしたとき

* イテレータを与えずにスレッドを生成しようとしたとき
* カレントスレッドの属するスレッドグループが freeze されて...
...いるときに、スレッドを生成しようとしたとき

* freeze あるいは enclose されているスレッドグループにスレッドを加えようとした時...

monitor (62.0)

スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。

...スレッドの同期機構としてのモニター機能を提供するクラスです。
また同じスレッドから何度も lock できる Mutex としての機能も提供します。

モニターとは、一つの Mutex とそれに関連付けられた複数の
条件変数から構成さ...
...れた、スレッドの同期機構です。
Mutex と 条件変数によって同等の機能を実現することは
可能ですが、モニタの利点はライブラリがその関連を保証
していることです。

monitor は以下のような Mutex としての機能も提供します...
...
* lock の持ち主がスレッドである Mutex / 何度も lock できる Mutex
* lock したスレッドを Mutex 側が覚えていて
* そのスレッドがもう一度 lock しようとしてもブロックしない
* synchronize は lock していなかったら通常ど...
...れた、スレッドの同期機構です。
Mutex と 条件変数によって同等の機能を実現することは
可能ですが、モニタの利点はライブラリがその関連を保証
していることです。

monitor は以下のような Thread::Mutex としての機能も提供...
...します。
* lock の持ち主がスレッドである Mutex / 何度も lock できる Mutex
* lock したスレッドを Mutex 側が覚えていて
* そのスレッドがもう一度 lock しようとしてもブロックしない
* synchronize は lock していなかったら...

Thread#value -> object (60.0)

スレッド self が終了するまで待ち(Thread#join と同じ)、 そのスレッドのブロックが返した値を返します。スレッド実行中に例外が 発生した場合には、その例外を再発生させます。

...
スレッド
self が終了するまで待ち(Thread#join と同じ)、
そのスレッドのブロックが返した値を返します。スレッド実行中に例外が
発生した場合には、その例外を再発生させます。

スレッド
が Thread#kill によって終了した場合...
...は、返り値は不定です。

以下は、生成したすべてのスレッドの終了を待ち結果を出力する例です。

threads = []
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.push(Thread.new { n = ran...
<< 1 2 3 ... > >>