NSOperation的繼承實現

2021-07-02 08:04:47 字數 1738 閱讀 5273

/*

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...