iOS 多執行緒 NSOperationQueue

2022-08-31 14:21:17 字數 1436 閱讀 8562

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 乙個繼承自...