/*
1.執行緒同步:原子操作,條件鎖,遞迴鎖,
@synchronized
。nscondition
:同步執行的順序。 2.
執行緒間通訊:
在主線程做事:
-performselectoronmainthread
在子執行緒做事:-
performselectorinbackground
在指定執行緒做事:
-performselector: onthread: withobject: waituntildone:
在當前執行緒做事:
-performselector: withobject:
取消傳送給當前執行緒的某訊息:
+cancelpreviousperformrequestswithtarget: selector: object: */
對nsoperation繼承實現,進行佇列的操作。
官方實現:
nsblockoperation
nsinvocationoperation
自定義實現: .h
#import typedef void (^completedblock) (nsdictionary *dictionary);
@inte***ce myoperation : nsoperation
@property (nonatomic, strong) nsurl *imageurl;
@property (nonatomic, strong) id target;
@property (nonatomic, strong) completedblock completedblock;
- (instancetype)initwithurl:(nsurl*)imageurl target:(id)target completedblock:(completedblock)completedblock;
@end
.m
#import "myoperation.h"
@implementation myoperation
- (void)main ;
self.completedblock(dict);
}- (instancetype)init
- (instancetype)initwithurl:(nsurl*)imageurl target:(id)target completedblock:(completedblock)completedblock
return self;
}@end
應用舉例:
nsstring *urlstr = @"";
myoperation *opera = [[myoperation alloc]initwithurl:[nsurl urlwithstring:urlstr] target:self completedblock:^(nsdictionary *dictionary) ];
// nsoperationqueue *myq = [[nsoperationqueue alloc]init];
// [myq addoperation:opera];//子執行緒執行completedblock
[[nsoperationqueue mainqueue] addoperation:opera];//主線程執行completedblock
NSOperation的基本使用
viewcontroller.m nsoperation的基本使用 nsoperation的作用 配合使用nsopertaion和nsoperationqueue也能實現多執行緒程式設計 nsopertaion和nsoperationqueue實現多執行緒的具體步驟 先將需要執行的操作封裝到乙個ns...
NSOperation的簡單使用
1.預設情況下,nsoperation並不具備封裝操作的能力,必須使用它的子類,使用nsoperation子類的方式有3種 1 nsinvocationoperation 2 nsblockoperation 3 自定義子類繼承nsoperation,實現內部相應的方法 這講先介紹如何用nsoper...
11 NSOperation的其他操作
1 最大併發數 1 什麼是併發數 同時執行的任務書 比如 同時開3個執行緒執行3個任務,併發數就是3 2 最大併發數的相關方法 nsinteger maxconcurrentoperationcount void setmaxconcurretoperationcount nsinteger cnt...