- 空間
主線程??臻g大小為 1M = 1024KB 無法修改(最大值)
子線程默認(rèn)棧控件為 512kb (最大值)
并且,一開始創(chuàng)建線程的時候空間有可能很小,隨著使用而增加,
主線程的棧實際使用空間 <= 1024KB
子線程的棧實際使用空間 <= 512KB
線程啟動前,stackd空間大小可以被改變
size 分配內(nèi)存的大小單位是1KB,線程創(chuàng)建在棧上,stack的最小值是16kb,而且大小必須是4的倍數(shù) 16 20 24 28 32 36 40kb 。。。
- 時間
時間消耗:(1毫秒 = 1/1000 秒)
創(chuàng)建:4-5毫秒
啟動:5-100毫秒 平均 29毫秒
總結(jié):開銷較大
原因:上下文切換帶來的開銷(CPU在某個時間點(diǎn)只能處理一個線程里的一個事情,如果處理另一個線程,需要上下文切換)
-(NSThread *)creatThreadWithTarget:(id)target selector:(SEL)selector object:(id)argument stackSize:(NSUInteger)size{
if (size % 4096 != 0) {
return nil;
}
NSThread *t = [[NSThread alloc] initWithTarget:target selector:selector object:argument];
t.stackSize = size;
return t;
}