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的第二个参数允许指定堆栈的最小大小,但我看不到指定要使用的缓冲区地址的方法。