<span style="font-family: Arial, Helvetica, sans-serif;">- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event</span>
{
//打印栈大小
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的倍数.