2

pthreads 允许用户提供一块内存用于线程堆栈:

size_t stack_size = 1024*1024*4;
void *stack = malloc( stack_size );
pthread_attr_t attributes;
pthread_attr_init( &attributes );
pthread_attr_setstack( &attributes, stack, stack_size );
pthread_t thread_id;
pthread_create( &thread_id, &attributes, worker_function, NULL 

Windows 线程是否提供类似的功能?CreateThread的第二个参数允许指定堆栈的最小大小,但我看不到指定要使用的缓冲区地址的方法。

4

1 回答 1

3

您不能像 Jerry Coffin 在评论中提到的那样为堆栈指定内存,您只能指定堆栈的大小作为CreateThread调用的第二个参数。

更多信息在这里

于 2012-06-12T08:24:41.067 回答