るりまサーチ

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

別のキーワード

  1. mutex_m synchronize
  2. mutex_m mu_synchronize
  3. monitor synchronize
  4. monitor mon_synchronize
  5. pstore synchronize

検索結果

<< < 1 2 3 > >>

Sync_m#sync_synchronize(mode = EX) {...} -> object (6102.0)

ロック状態を変更してブロックを実行します。 ブロックの実行結果を返します。

ロック状態を変更してブロックを実行します。
ブロックの実行結果を返します。

@param mode 変更後の状態を指定します。
通常、 Sync_m::UN, Sync_m::EX, Sync_m::SH のどれかを指定します。

Shell::ProcessController.block_output_synchronize { ... } -> () (6101.0)

@todo

@todo

Synchronizer (6000.0)

Alias of Sync

Alias of Sync

Synchronizer_m (6000.0)

Alias of Sync_m

Alias of Sync_m

Etc::SC_SYNCHRONIZED_IO -> Integer (3100.0)

Etc.#sysconf の引数に指定します。

Etc.#sysconf の引数に指定します。

詳細は sysconf(3) を参照してください。

絞り込み条件を変える

Monitor (36.0)

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

...ew
empty_cond = mon.new_cond

# consumer
Thread.start do
loop do
mon.synchronize do
empty_cond.wait_while { buf.empty? }
print buf.shift
end
end
end

# producer
while line = ARGF.gets
mon.synchronize do
buf.push(line)
empty_cond.signal
end
end
//}

2回ロック...
...uby]{
require 'monitor'
mon = Monitor.new
mon.synchronize {
mon.synchronize {
}
}
//}

Thread::Mutex ではデッドロックになります。

//emlist[Mutex でデッドロックになる例][ruby]{
mx = Mutex.new
mx.synchronize {
mx.synchronize {
}
}
# => deadlock; recursive locking (Thr...

Thread::ConditionVariable (24.0)

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

...onVariable.new

a = Thread.start {
mutex.synchronize {
...
while (条件が満たされない)
cv.wait(mutex)
end
...
}
}

b = Thread.start {
mutex.synchronize {
# 上の条件を満たすための操...
...d

def count
@q.size
end

def enq(v)
@mutex.synchronize{
@full.wait(@mutex) if count == @max
@q.push v
@empty.signal if count == 1
}
end

def deq
@mutex.synchronize{
@empty.wait(@mutex) if count == 0
v = @q.shift...

MonitorMixin (18.0)

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

...を追加
empty_cond = buf.new_cond # 配列が空であるかないかを通知する条件変数

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

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

//emlist[include する例][ruby]{
require 'monitor'

class MyObject
include MonitorMixin

def initialize(val)
super()
@value = val
end

def to_s
synchronize
{
@value.to_s
}
end
end
//}

以下も参考になります。

* 9384
* 9386...

Mutex_m (12.0)

スレッド同期機構である 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...

NEWS for Ruby 2.0.0 (12.0)

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

...在のスレッドに所持されているかどうかを返します
* 非互換:
* Mutex#lock, Mutex#unlock, Mutex#try_lock, Mutex#synchronize, Mutex#sleep
はトラップハンドラの中では使えなくなりました。そのようなときは ThreadError が発生しま...
...lize_dup
* private になりました

* Thread#join, Thread#value
* 上を参照

* Mutex#lock, Mutex#unlock, Mutex#try_lock, Mutex#synchronize, Mutex#sleep
* 上を参照

=== 標準添付ライブラリの更新 (優れたもののみ)

* cgi
* HTML5 用のタグメーカー...

絞り込み条件を変える

Thread::ConditionVariable#broadcast -> self (12.0)

状態変数を待っているスレッドをすべて再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。

...w
cv = ConditionVariable.new
flg = true

3.times {
Thread.start {
mutex.synchronize {
puts "a1"
while (flg)
cv.wait(mutex)
end
puts "a2"
}
}
}

Thread.start {
mutex.synchronize {
flg = false
cv.broadcast
}
}

sleep 1

# => a1
# => a1
# => a1
#...
<< < 1 2 3 > >>