<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的倍数.
本文探讨了在iOS开发中如何调整线程栈大小以优化内存使用和提高性能,通过实例展示了如何在代码中修改栈大小,并分析了不同大小对运行效率的影响。
590

被折叠的 条评论
为什么被折叠?



