読者です 読者をやめる 読者になる 読者になる

Boost.Thread スタックサイズを設定する

C++

boost::threadクラスには、attributesという内部クラスがあります。これのメンバ関数であるset_stack_size()を使用することで、スレッドの作成に使用するスタックサイズをstd::size_tで指定できます。
スタックサイズを設定したattributesオブジェクトへの参照をboost::threadクラスのコンストラクタに渡すことで、設定が反映されます。

#include <boost/thread.hpp>

int main()
{
    boost::thread::attributes attr;
    attr.set_stack_size(1024 * 10); // スタックサイズを10KBに設定

    boost::thread t(attr, []{});
    t.join();
}

スレッドの作成に使用するスタックサイズを取得するget_stack_size()というメンバ関数もありますが、これはset_stack_size()で設定した値を返すだけで、デフォルトでは0を返すようです。


参照:
Class boost::thread::attributes EXTENSION