nsobject 的 performselectorinbackground:withobject
引數1:方法名稱,引數2:方法引數
- (void)performselectoronmainthread:(sel)aselector withobject:(id)arg waituntildone:(bool)wait
可以理解為切回到主線程麼?
初始化方法
- (instancetype)initwithtarget:(id)target selector:(sel)selector object:(id)argument
利用 初始化方法得到的例項需要呼叫- (void)start
該程序才會開始工作
如果用便利構造器構造的話就構造完成就可以直接工作
+ (void)detachnewthreadselector:(sel)aselector totarget:(id)atarget withobject:(id)anargument
同時為了保證多執行緒訪問乙個資料時,這個資料不會同時被操作,引入了nslock
這個類
某些**開始運算元據時可用[lock lock]
來鎖住**,不讓其他執行緒進行操作,當執行完成時進行[lock unlock]
操作,這樣下乙個程序才會執行這段**
ios中有@ synchronized{}
開簡化nslock,只需要把需要鎖的**放在這個括號中就會自動鎖住和解鎖
nsoperationqueue 通過- (void)addoperation:(nsoperation *)operation
方法來向佇列中新增nsoperation
nsoperation
是乙個抽象類,需要nsinvocationoperation
(或者其他的實現抽象類的類)建立乙個nsoperation操作單元
nsblockoperation
是系統提供的乙個通過block建立操作單元的方法
它的便利構造方法+ (instancetype)blockoperationwithblock:(void (^)(void))block
可以直接通過block中寫要實現的**
[nsoperationqueue mainqueue]
獲取到主線程佇列
[nsoperationqueue currentqueue]
獲取當前執行緒佇列
中文翻譯:大**排程^_^
ios 開發中的多執行緒
dispatch async dispatch queue create com.enormego.egoimageloader null 二 nsoperation和nsopertionqueue 1,乙個繼承自nsoperation的操作類,該類的實現中必須有 void main 方法 2,最簡...
iOS多執行緒
iphone 中的執行緒應用並不是無節制的,官方給出的資料顯示iphone os下的主線程的堆疊大小是1m,第二個執行緒開始都是512kb。並且該值不能通過編譯器開關或執行緒api函式來更改。只有主線程有直接修改ui的能力。一 nsoperation和nsoperationqueue 1 乙個繼承自...
iOS多執行緒
iphone 中的執行緒應用並不是無節制的,官方給出的資料顯示iphone os下的主線程的堆疊大小是1m,第二個執行緒開始都是512kb。並且該值不能通過編譯器開關或執行緒api函式來更改。只有主線程有直接修改ui的能力。一 nsoperation和nsoperationqueue 1 乙個繼承自...