ロックフリーなキューを実装しているクラスです。
[詳解]
#include "nn/nlib/LockFree.h"
template<class T>
class nn::nlib::LockFreeQueue< T >
ロックフリーなキューを実装しているクラスです。
- テンプレート引数
-
T | キューの要素の型です。PODである必要があります。 |
- 説明
Enqueue()
及びDequeue()
メンバ関数がスレッドセーフです。 T
にポインタ型を指定した場合、キューに追加されたT
型のオブジェクトはDestructorForLockFree
を利用して削除されます。
- コード例
LockFreeQueue<MyClass*> queue;
e = queue.Init(1024);
}
.....
MyClass* elem = new MyClass();
.....
e = queue.Enqueue(elem);
}
.....
e = queue.Dequeue(x);
}
.....
- 参照
- http://www.cs.rochester.edu/~scott/papers/1996_PODC_queues.pdf
LockFree.h の 529 行目に定義があります。
§ DequeueType
§ ~LockFreeQueue()
§ Dequeue()
キューから要素を取り出してx
に格納します。スレッドセーフです。
- 引数
-
[in] | x | キューから取りだされた要素が格納される領域 |
- 戻り値
-
LockFree.h の 544 行目に定義があります。
§ DequeueUnsafe()
キューから要素を取り出してx
に格納します。スレッドセーフではありません。
- 引数
-
[in] | x | キューから取りだされた要素が格納される領域 |
- 戻り値
-
LockFree.h の 548 行目に定義があります。
§ Enqueue()
§ EnqueueUnsafe()
キューに要素x
を追加します。スレッドセーフではありません。
- 引数
-
- 戻り値
-
LockFree.h の 546 行目に定義があります。
§ Init()
キューを初期化します。スレッドセーフではありません。
- 引数
-
[in] | count | キューに追加することの出来る要素の数 |
- 戻り値
-
0 | 成功した場合 |
ENOMEM | メモリの確保に失敗した場合 |
EALREADY | 既に初期化済みの場合 |
LockFree.h の 537 行目に定義があります。
このクラス詳解は次のファイルから抽出されました: