9件ヒット
[1-9件を表示]
(0.014秒)
ライブラリ
- ビルトイン (3)
- drb (1)
-
drb
/ timeridconv (1) -
net
/ imap (1) -
rinda
/ tuplespace (1) - weakref (2)
キーワード
- DRbIdConv (1)
- FlagCountError (1)
- RefError (1)
- Symbol (1)
- Thread (1)
- TimerIdConv (1)
- TupleEntry (1)
- WeakMap (1)
- WeakRef (1)
検索結果
-
Net
:: IMAP :: FlagCountError (18004.0) -
サーバからのレスポンスに含まれるフラグが多すぎるときに発生する例外です。
サーバからのレスポンスに含まれるフラグが多すぎるときに発生する例外です。
この上限は Net::IMAP.max_flag_count= で設定します。 -
DRb
:: TimerIdConv (106.0) -
オブジェクトと識別子を相互に変換するクラスです。 これによって識別子に変換されたオブジェクトは一定時間 GC から保護されます。
オブジェクトと識別子を相互に変換するクラスです。
これによって識別子に変換されたオブジェクトは一定時間
GC から保護されます。
DRb::DRbIdConv では to_id で識別子に
変換し、リモートに送られたオブジェクトは GC から保護されません。
ローカルプロセスからの参照がなくなったオブジェクトは、
リモートからの参照が生きていたとしても GC によって廃棄される
可能性があります。
このクラスを DRb::DRbIdConv の代わりに用いることで、
to_id でオブジェクトを識別子に変換してから
一定時間(DRb::TimerIdConv.new の timeout で指... -
DRb
:: DRbIdConv (76.0) -
オブジェクトと識別子を相互に変換するクラスです。
オブジェクトと識別子を相互に変換するクラスです。
リモートオブジェクトは、URIと識別子で区別されます。
リモートメソッド呼び出しは、リモートプロセスに識別子を
送り、それを受け取ったプロセスでオブジェクトに変換することで実現されます。
このクラスはdRubyでデフォルトとして使われる
のオブジェクト-識別子間の変換クラスです。
この変換には ObjectSpace の機構が使われます。特に
ObjectSpace.#_id2ref が使われています。
これはリモートオブジェクト
が有効なのはリモートプロセス内の対応オブジェクトが GC で回収されるまで
であることを意味します。一方 GC... -
Symbol (76.0)
-
シンボルを表すクラス。シンボルは任意の文字列と一対一に対応するオブジェクトです。
...複製しても同じ要素へのポインタが使われるだけなので
メモリ使用量は普通の文字列と比べて少ないです。
2.2.0 以降においては、テーブルに記録された情報は
Ruby によって GC されます。すなわち、ある使わなくなった
シ... -
ObjectSpace
:: WeakMap (52.0) -
GC の対象になるオブジェクトへの weak reference を持つクラスです。主に WeakRef クラスの内部で使用されるため、weakref ライブラリ 経由で使用してください。
GC の対象になるオブジェクトへの weak reference を持つクラスです。主に
WeakRef クラスの内部で使用されるため、weakref ライブラリ
経由で使用してください。 -
WeakRef
:: RefError (52.0) -
GC されたオブジェクトを参照しようとしたときに発生する例外です。
GC されたオブジェクトを参照しようとしたときに発生する例外です。 -
WeakRef (40.0)
-
weak reference を実現するクラスです。
weak reference を実現するクラスです。
WeakRef オブジェクトは与えられたオブジェクトをポイントしますが、
ポイント先のオブジェクトは GC される可能性があります。
アクセスしようとしたときにオブジェクトが GC されていれば
WeakRef::RefError が発生します。
delegate も参照してください。
=== サンプルコード
require 'weakref'
foo = Object.new
ref = WeakRef.new(foo)
ref.some_method_of_foo -
Rinda
:: TupleEntry (22.0) -
タプルスペース内に含まれるタプルを管理するためのクラスです。 タプルの有効期限を管理し、タプルのキャンセル操作ができます。
タプルスペース内に含まれるタプルを管理するためのクラスです。
タプルの有効期限を管理し、タプルのキャンセル操作ができます。
Rinda::TupleSpace#write はこのオブジェクトを返し、
それを利用してタプルを明示的にキャンセルすることができます。
ただし、タプルスペースのあるプロセスがタプルを投入したプロセスと
異なる場合、これを受け取る側はリモートオブジェクトによって
このオブジェクトを参照します。そのためタプルスペースのプロセス側では
参照切れによるGCが発生し、TupleEntryオブジェクトが消滅してしまうかもしれません。
これを防ぐには何らかの仕掛けが必要でしょう。... -
Thread (22.0)
-
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Thread を使うことで並行プログラミングが可能になります。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ライブラリから GVL を操作できるので、複数のスレッドを
同時に実行するような拡...