堆疊大小

堆疊大小是由衍生自 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 的定義。或者,您也可以將不同值傳遞至執行緒建構子作為第四個參數,以變更特定執行緒的堆疊大小。


意見回饋