るりまサーチ

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

別のキーワード

  1. objectspace each_object
  2. _builtin each_object
  3. object to_enum
  4. object public_send
  5. object enum_for

ライブラリ

クラス

キーワード

検索結果

Thread::Mutex#synchronize { ... } -> object (21208.0)

mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。

...を実行します。実行後に必ず mutex のロックを解放します。

ブロックが最後に評価した値を返します。

@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Sig...
...nal.#trap に指定したハンドラ内で実行
した場合に発生します。

//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # => true
# critical part
"result"
end
m.locked? # => false
result # => "result"
//}...

Thread.exclusive { ... } -> object (21137.0)

VM グローバルの Mutex をロックし、ブロックを実行します。

...ます。

このクラスメソッドの挙動は 1.8 以前とは違います。
Thread
.exclusive は VM グローバルの Thread::MUTEX_FOR_THREAD_EXCLUSIVE の
synchronize
を呼び出しているだけで、Thread.exclusive していないスレッドは動きます。
Mutex や Monitor など...
...ッドの挙動は 1.8 以前とは違います。
Thread
.exclusive は VM グローバルの Thread::MUTEX_FOR_THREAD_EXCLUSIVE の
synchronize
を呼び出しているだけで、Thread.exclusive していないスレッドは動きます。
Thread
::Mutex や Monitor などの他の排他制御の...
...クラスメソッドの挙動は 1.8 以前とは違います。
Thread
.exclusive は VM グローバルの Mutex の
synchronize
を呼び出しているだけで、Thread.exclusive していないスレッドは動きます。
Thread
::Mutex や Monitor などの他の排他制御の方法を検...

NEWS for Ruby 2.0.0 (186.0)

NEWS for Ruby 2.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

...
* 拡張: Kernel.#caller 第2引数で取得するスタックのサイズを指定できるようになりました
* 拡張: Object#to_enum Object#enum_for サイズの遅延評価のためにブロックを受け取るようになりました
* 非互換: Kernel.#system, Kernel.#e...
...した。
//emlist{
Object
.const_get("Foo::Bar::Baz")
//}

* Mutex
* 追加(実験的): Mutex#owned? mutex が現在のスレッドに所持されているかどうかを返します
* 非互換:
* Mutex#lock, Mutex#unlock, Mutex#try_lock, Mutex#synchronize, Mutex#sleep...
...では使えなくなりました。そのようなときは ThreadError が発生します
* Mutex#sleep may spurious wakeup. Check after wakeup.

* NilClass
* 追加: NilClass#to_h 空のハッシュを返します

* ObjectSpace::WeakMap
* 弱い参照を保持するための低...

Mutex_m (56.0)

スレッド同期機構である Thread::Mutex のモジュール版です。クラスに Module#include することでそのクラスに Mutex 機能を持たせることができます。 また、普通のオブジェクトを Object#extend により Mutex にする事ができます。

...スレッド同期機構である Thread::Mutex のモジュール版です。クラスに
Module#include することでそのクラスに Mutex 機能を持たせることができます。
また、普通のオブジェクトを Object#extend により Mutex にする事ができます。

この...
...tex_m#synchronize,
Mutex_m#locked?, Mutex_m#try_lock, Mutex_m#unlock)
はモジュールにincludeした場合には定義されません。

1991

=== 例
クラスに Module#include する例
require "mutex_m"
class Foo
include Mutex_m
...
end
obj = Foo.new
obj.synchronize do...
...# 危険領域(critical section)
...
end

オブジェクトに Object#extend する例
require "mutex_m"
obj = Object.new
obj.extend(Mutex_m)
obj.lock
# 危険領域(critical section)
...
obj.unlock...

MonitorMixin (42.0)

スレッドの同期機構としてのモニター機能を提供するモジュールです。

...の同期機構としてのモニター機能を提供するモジュールです。

クラスに Module#include したり、オブジェクトに
Object
#extend したりすることでそのクラス/オブジェクトに
モニタ機能を追加します。

=== 例

//emlist[消費者、生産...
...モニタ機能を追加
empty_cond = buf.new_cond # 配列が空であるかないかを通知する条件変数

# consumer
Thread
.start do
loop do
buf.synchronize do # ロックする
empty_cond.wait_while { buf.empty? } # 配列が空である間はロックを開放して待つ...
...でなくなった後ロックを取得してこの行を実行
end # ロックを開放
end
end

# producer
while line = ARGF.gets
buf.synchronize do # ロックする
buf.push(line) # 配列を変更(追加)
empty_cond.signal # 配列に要素が追加されたことを条件変数...

絞り込み条件を変える