るりまサーチ

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

ライブラリ

キーワード

検索結果

<< 1 2 > >>

Thread::Mutex#lock -> self (1.0)

{: since="1.9.1"}

...停止されます。

- **raise** `ThreadError` -- self 既にカレントスレッドにロックされている場合に発生します。
また、[m:Signal?.trap] に指定したハンドラ内で実行した場合に発生します。


- **SEE** [m:Thread::Mutex#unlock]...

Thread::Mutex#locked? -> bool (1.0)

mutex がロックされている時、真を返します。

...mutex がロックされている時、真を返します。

```ruby title="例"
m = Thread::Mutex.new
p m.locked? # => false
m.lock
p m.locked? # => true
```...

Thread::Mutex#owned? -> bool (1.0)

{: since="2.0.0"}

...}

self がカレントスレッドによってロックされている場合に true を返します。
そうでない場合に false を返します。

```ruby title="例"
m = Thread::Mutex.new
p m.owned? # => false
m.lock
Thread.new do
p m.owned? # => false
end.join
p m.owned? # => true
```...

Thread::Mutex#sleep(timeout = nil) -> Integer (1.0)

{: since="1.9.1"}

...を受信した場合などに実行が再開(spurious wakeup)される場合がある点に注意してください。

```ruby title="例"
m = Thread::Mutex.new
th = Thread.new do
m.lock
m.sleep(2)
end
p th.status # => "run"
sleep 1
p th.status # => "sleep"
sleep 1
p th.status # => false
```...

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

{: since="1.9.1"}

...。
また、[m:Signal?.trap] に指定したハンドラ内で実行した場合に発生します。

```ruby title="例"
m = Thread::Mutex.new
result = m.synchronize do
p m.locked? # => true
# critical part
"result"
end
p m.locked? # => false
p result # => "result"
```...

絞り込み条件を変える

Thread::Mutex#try_lock -> bool (1.0)

{: since="1.9.1"}

...{: since="1.9.1"}

mutex をロックしようとして、ロックが成功した場合、真を返します。
ロックできなかった場合にはブロックせず偽を返します。

```ruby title="例"
m = Thread::Mutex.new
p m.try_lock # => true
p m.try_lock # => false
```...

Thread::Mutex#unlock -> self (1.0)

{: since="1.9.1"}

...ック待ちになっていたスレッドの実行は再開されます。

- **return** -- self を返します。

```ruby title="例"
m = Thread::Mutex.new
begin
m.lock
# critical part
ensure
m.unlock
end
```

Mutex はロックしたスレッド以外からロックを開放すること...

Thread::Mutex.new -> Thread::Mutex (1.0)

新しい mutex を生成して返します。

...新しい mutex を生成して返します。


- **SEE** [m:Thread::Mutex#unlock]...
<< 1 2 > >>