マルチスレッドのプログラミング

最小のスタックの大きさの取得

thr_min_stack(3THR)

thr_min_stack(3THR) は、スレッドの最小のスタックの大きさを取得します。


#include <thread.h>

size_t thr_min_stack(void);

NULL スレッドを実行するために必要なスタック空間の大きさが戻されます (NULL スレッドとは、中身のない (NULL) 手続きを実行するために生成されるスレッドのことです)。

スレッドが NULL 手続きでなく通常の手続きを実行する場合は、thr_min_stack() の戻り値よりも大きなスタックの大きさを割り当てなければなりません。

スレッドの生成時に、ユーザが独自のスタックを指定する場合は、そのスレッドを実行するために十分な大きさのスタック空間を、ユーザ自身が確保しなければなりません。動的にリンクされるような実行環境では、スレッドのスタックの大きさの最小限必要な量を見積もることは困難です。

通常、ユーザ独自のスタックが必要になることはまれです。実際、アプリケーション側が実行環境を完全に制御するなどのごく限られた状況でしか必要になりません。

ユーザは、スレッドライブラリにスタックの割り当てを任せることができます。スレッドライブラリのデフォルトのスタックは、すべてのスレッドの要求を満たします。