nlib
|
予めプールされた作成済みのスレッドに対してタスクを投入することができます。 [詳解]
#include "nn/nlib/threading/ThreadPool.h"
公開メンバ関数 | |
ThreadPool () noexcept | |
デフォルトコンストラクタです。Init() で初期化する必要があります。 | |
errno_t | Init (size_t numThreads, const ThreadSettings &settings) noexcept |
スレッドを起動してスレッドプールを初期化します。 [詳解] | |
errno_t | Init (size_t numThreads) noexcept |
スレッドを起動してスレッドプールを初期化します。 [詳解] | |
errno_t | Init () noexcept |
スレッドを起動してスレッドプールを初期化します。 [詳解] | |
~ThreadPool () noexcept | |
デストラクタです。内部で起動したスレッドを全てJoinします。 | |
template<class R , class FUNC > | |
errno_t | Submit (Future< R > *future, FUNC &func) noexcept |
スレッドプールにタスクを投入します。 [詳解] | |
size_t | Count () noexcept |
スレッドプールが保持するスレッドの数を返します。 | |
予めプールされた作成済みのスレッドに対してタスクを投入することができます。
ThreadPool
クラスは、タスク投入時にFuture
を返すことで各タスクが完了したかどうかの確認とその戻り値を取得することが可能になっています。 ThreadPool.h の 39 行目に定義があります。
|
noexcept |
スレッドを起動してスレッドプールを初期化します。
[in] | numThreads | 起動するスレッドの数 |
[in] | settings | 起動するスレッドの設定 |
|
inlinenoexcept |
|
inlinenoexcept |
スレッドを起動してスレッドプールを初期化します。
GetHardwareConcurrency()
を実行してその数だけスレッドを起動します。 ThreadPool.h の 47 行目に定義があります。
|
inlinenoexcept |
スレッドプールにタスクを投入します。
R | FUNC の戻り値の型です。 |
FUNC | 引数を取らず、型R を返す関数ポインタ等の呼び出し可能なオブジェクトの型です。 |
[out] | future | 投入するタスク(func )に対するフューチャーが格納されるポインタです。 |
[in] | func | 投入するタスクです。 |
func
は内部でswap
によって受け渡しされることがあります。 そのため、関数オブジェクト等を渡した場合にfunc
の内容は保証されません。 ThreadPool.h の 68 行目に定義があります。
© 2013, 2014, 2015 Nintendo Co., Ltd. All rights reserved.