1.就基本使用
nsinvocationoperation
//1.建立操作物件,封裝需要執行的任務nsinvocationoperation * operation =[[nsinvocationoperation alloc]initwithtarget:self selector:@selector(download) object:nil];
//2.執行操作(預設情況下,如果操作沒有放到佇列queue中,都是同步執行)
[operation start];
- (void)download
nsblockoperation
//1.封裝操作nsblockoperation * operation=[nsblockoperation blockoperationwithblock:^];
[operation addexecutionblock:^];
[operation addexecutionblock:^];
//2.執行操作
[operation start];
//注意:只要nsblockoperation封裝的運算元》1,就會非同步執行操作
nsoperationqueue 操作佇列
//建立操作佇列nsoperationqueue * queue =[[nsoperationqueue alloc]init];
nsinvocationoperation *operation1 =[[nsinvocationoperation alloc]initwithtarget:self selector:@selector(download) object:nil];
nsinvocationoperation * operation2 =[[nsinvocationoperation alloc]initwithtarget:self selector:@selector(run) object:nil];
nsblockoperation * operation3 =[nsblockoperation blockoperationwithblock:^];
[operation3 addexecutionblock:^];
[queue addoperation:operation1];
[queue addoperation:operation2];
[queue addoperation:operation3];
//將操作放在佇列裡才能非同步操作
*設定最大併發數
- (void)setmaxconcurrentoperationcount:(nsinteger )cnt;
*設定依賴
[opetationb adddependency:operationa];//操作b依賴於操作a a執行完才會執行b
iOS多執行緒
iphone 中的執行緒應用並不是無節制的,官方給出的資料顯示iphone os下的主線程的堆疊大小是1m,第二個執行緒開始都是512kb。並且該值不能通過編譯器開關或執行緒api函式來更改。只有主線程有直接修改ui的能力。一 nsoperation和nsoperationqueue 1 乙個繼承自...
iOS多執行緒
iphone 中的執行緒應用並不是無節制的,官方給出的資料顯示iphone os下的主線程的堆疊大小是1m,第二個執行緒開始都是512kb。並且該值不能通過編譯器開關或執行緒api函式來更改。只有主線程有直接修改ui的能力。一 nsoperation和nsoperationqueue 1 乙個繼承自...
iOS多執行緒
iphone 中的執行緒應用並不是無節制的,官方給出的資料顯示iphone os下的主線程的堆疊大小是1m,第二個執行緒開始都是512kb。並且該值不能通過編譯器開關或執行緒api函式來更改。只有主線程有直接修改ui的能力。一 nsoperation和nsoperationqueue 1 乙個繼承自...