種類
- インスタンスメソッド (91)
- 特異メソッド (13)
ライブラリ
- ビルトイン (104)
検索結果
先頭5件
-
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]...
