- メインページ
- モジュール
- ネームスペース
- データ構造
- ファイル

- データ構造
- データ構造索引
- クラス階層
- データフィールド

Public メソッド | Static Protected メソッド
構造体 mist::lock_object
スレッド

スレッドの排他制御をサポートするクラス [詳細]

`#include <thread.h>`

## Public メソッド
bool | lock ()
| 排他制御用オブジェクトをロックする
bool | try_lock ()
| 排他制御用オブジェクトのロックを試みる
bool | unlock ()
| 排他制御用オブジェクトのロックを解除する

## Static Protected メソッド
static lock_object_type & | double_lock_object ()
| 内部で使用するダブルロックオブジェクトを取得する
static void | initialize (lock_object_type &l)
| ロックオブジェクトの初期化を行う
static void | lock (lock_object_type &l)
| ロックオブジェクトをロックする
static bool | try_lock (lock_object_type &l)
| 排他制御用オブジェクトのロックを試みる
static void | unlock (lock_object_type &l)
| ロックオブジェクトをロックを解除する

## 説明

スレッドの排他制御をサポートするクラス

ロックするオブジェクトを名前を用いて共有化することが可能なクラス． 同名のロックオブジェクトを作成することで別々のスレッド関数内での排他制御が可能となる．

注意
  ロックオブジェクトの生成時点では，ロックはされないことに注意

- Windows … クリティカルセクションを利用
- Linux系 … ミューテックスを利用

使用例
lock_object l( "ロックオブジェクトの名前" ); // <- 名前を指定しないと，デフォルトのロックオブジェクトが使用される
... 何らかの処理 ...
l.lock( ); // <- これ以降の処理1を排他制御する
... 処理1 ...
l.unlock( ); // <- ここまでの処理1が排他制御される
... 何らかの処理 ...
l.lock( ); // <- これ以降の処理2を排他制御する
... 処理2 ...
l.unlock( ); // <- ここまでの処理2が排他制御される

## 関数

static void mist::lock_object::initialize | ( | lock_object_type & | l | ) |
| inline static protected

ロックオブジェクトの初期化を行う

引数

  [in,out] | l | … ロックオブジェクト

bool mist::lock_object::lock | ( |  | ) |
| inline

排他制御用オブジェクトをロックする

戻り値

  true | … ロックに成功
  false | … ロックに失敗

static void mist::lock_object::lock | ( | lock_object_type & | l | ) |
| inline static protected

ロックオブジェクトをロックする

引数

  [in,out] | l | … ロックオブジェクト

bool mist::lock_object::try_lock | ( |  | ) |
| inline

排他制御用オブジェクトのロックを試みる

既にロックされていた場合は，ロックせずに false を返す．

戻り値

  true | … ロックに成功
  false | … ロックに失敗

static bool mist::lock_object::try_lock | ( | lock_object_type & | l | ) |
| inline static protected

排他制御用オブジェクトのロックを試みる

既にロックされていた場合は，ロックせずに false を返す．

引数

  [in,out] | l | … ロックオブジェクト

戻り値

  true | … ロックに成功
  false | … ロックに失敗

static void mist::lock_object::unlock | ( | lock_object_type & | l | ) |
| inline static protected

ロックオブジェクトをロックを解除する

引数

  [in,out] | l | … ロックオブジェクト

この構造体の説明は次のファイルから生成されました:

- thread.h