![](/img/trans.png)
[英]How to increase c++ thread stack size on solaris using pthreads?
[英]Specifying thread stack size in pthreads
我想增加通過pthread_create()創建的線程的堆棧大小。 走的路似乎是
int pthread_attr_setstack( pthread_attr_t *attr,
void *stackaddr,
size_t stacksize );
來自pthread.h
。
但是,根據多個在線參考資料 ,
stackaddr應該適當對齊以用作堆棧; 例如,如果(stackaddr&0x7)不為0,則pthread_attr_setstack()可能會失敗,並顯示[EINVAL]。
我的問題:有人可以提供如何進行對齊的示例嗎? 它(對齊)平台或實現相關嗎?
提前致謝
切勿使用pthread_attr_setstack
。 它有很多致命缺陷,其中最嚴重的是,它是不可能永遠免費或線程已經用它創建之后再使用堆棧。 (POSIX明確指出,任何嘗試這樣做都會導致未定義的行為。)
POSIX提供了更好的函數pthread_attr_setstacksize
,該函數允許您請求所需的堆棧大小,但使實現負責分配和取消分配堆棧。
查看posix_memalign()
。
它將分配所請求的對齊方式和大小的存儲塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.