堆疊大小是由衍生自 OMOSThread 介面的封套執行緒物件 <env>Thread 的實作所決定的。明確地說,堆疊大小定義在建構子主體中,其執行於執行緒建立呼叫上。例如,在 VxWorks 中的 VxThread 物件的建構子中,堆疊大小在 VxOS.h 中設為 OMOSThread::DefaultStackSize 的預設值,如下所示:
VxThread(void tfunc(void *), void *param, const char* const name = NULL, const long stackSize = OMOSThread::DefaultStackSize);
OMOSThread 中的 DefaultStackSize 設為 VxOS.cpp 檔案中的 DEFAULT_STACK(針對 VxWorks 定義為 20000),如下所示:
const long OMOSThread::DefaultStackSize = DEFAULT_STACK;
若要變更所有新執行緒的堆疊大小,請在 <env>OS.h 檔案中變更 DEFAULT_STACK 的定義。或者,您也可以將不同值傳遞至執行緒建構子作為第四個參數,以變更特定執行緒的堆疊大小。