开启线程后开辟stacksize 最小为多少

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //打印栈大小
    NSLog(@"%tu", [NSThread currentThread].stackSize / 1024);
    
    
    //修改栈4K的大小
    [NSThread currentThread].stackSize = 4 * 1024;
    NSLog(@"修改为4k后的栈大小为%tu", [NSThread currentThread].stackSize / 1024);
    
    //修改栈7K的大小
    [NSThread currentThread].stackSize = 7 * 1024;
    NSLog(@"修改为7k后的栈大小为%tu", [NSThread currentThread].stackSize / 1024);
    
    //修改为8K栈的大小
    [NSThread currentThread].stackSize = 8 * 1024;
    NSLog(@"修改8K后的栈大小为%tu", [NSThread currentThread].stackSize / 1024);
    
}



输出:

2015-09-10 14:40:42.486 线程属性[3556:205032] 512
2015-09-10 14:40:42.486 线程属性[3556:205032] 修改为4k后的栈大小为512
2015-09-10 14:40:42.486 线程属性[3556:205032] 修改为7k后的栈大小为512
2015-09-10 14:40:42.487 线程属性[3556:205032] 修改8K后的栈大小为8

官方文档描述如下:

Discussion

This value must be in bytes and a multiple of 4KB.


通过上面的代码可以知道,开辟一个线程后,默认开辟512K,最小为8K,分配时为4的倍数.

你可能感兴趣的:(Object-C)