自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPhone開發(fā)關(guān)于NSInvocationOperation多線程教程

移動開發(fā) iOS
在Cocoa中,Apple提供了 NSOperation這個類,提供了一個優(yōu)秀的多線程編程方法。本次介紹NSOperation的子集,簡易方法的NSInvocationOperation。

iPhone開發(fā)關(guān)于NSInvocationOperation多線程教程是本文要介紹的內(nèi)容,主要是來介紹線程的相關(guān)內(nèi)容,來看詳細內(nèi)容講解。多線程編程是防止主線程堵塞,增加運行效率等等的***方法。而原始的多線程方法存在很多的毛病,包括線程鎖死等。

在Cocoa中,Apple提供了 NSOperation這個類,提供了一個優(yōu)秀的多線程編程方法。本次介紹NSOperation的子集,簡易方法的NSInvocationOperation:

  1. @implementation MyCustomClass    
  2. - (void)launchTaskWithData:(id)data {   
  3. //創(chuàng)建一個NSInvocationOperation對象,并初始化到方法   
  4. //在這里,selector參數(shù)后的值是你想在另外一個線程中運行的方法(函數(shù),Method)   
  5. //在這里,object后的值是想傳遞給前面方法的數(shù)據(jù)   
  6. NSInvocationOperation* theOp = [[NSInvocationOperation alloc]   
  7. initWithTarget:selfselector:@selector(myTaskMethod:) object:data];    
  8. // 下面將我們建立的操作“Operation”加入到本地程序的共享隊列中(加入后方法就會立刻被執(zhí)行)   
  9. // 更多的時候是由我們自己建立“操作”隊列   
  10. [[MyAppDelegate sharedOperationQueue] addOperation:theOp];  
  11. }    
  12. // 這個是真正運行在另外一個線程的“方法”  
  13. - (void)myTaskMethod:(id)data {   
  14. // Perform the task.   
  15. }  
  16. end  

一個NSOperationQueue 操作隊列,就相當(dāng)于一個線程管理器,而非一個線程。因為你可以設(shè)置這個線程管理器內(nèi)可以并行運行的的線程數(shù)量等等。下面是建立并初始化一個操作隊列:

  1.  @interface MyViewController : UIViewController {    
  2.  NSOperationQueue *operationQueue;   
  3.  //在頭文件中聲明該隊列   
  4. }   
  5. @end    
  6. @implementation MyViewController    
  7. - (id)init {self = [super init];  
  8.  if (self) {operationQueue = [[NSOperationQueue alloc] init];   
  9.  //初始化操作隊列   
  10.  [operationQueue setMaxConcurrentOperationCount:1];  
  11.   //在這里限定了該隊列只同時運行一個線程   
  12.   //這個隊列已經(jīng)可以使用了  
  13. }  
  14.  return self;  
  15. }    
  16. - (void)dealloc {   
  17. [operationQueue release];   
  18. //正如Alan經(jīng)常說的,我們是程序的好公民,需要釋放內(nèi)存!   
  19. [super dealloc];   
  20. }   
  21. @end  

簡單介紹之后,其實可以發(fā)現(xiàn)這種方法是非常簡單的。很多的時候我們使用多線程僅僅是為了防止主線程堵塞,而 NSInvocationOperation就是最簡單的多線程編程,在iPhone編程中是經(jīng)常被用到的。

小結(jié):iPhone開發(fā)關(guān)于NSInvocationOperation多線程教程的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2013-08-21 16:17:09

iPhone多線程

2011-08-18 17:07:23

IOS開發(fā)多線程NSInvocatio

2011-08-09 14:24:18

iPhone多線程線程

2011-07-21 11:12:58

iPhone 線程 多線程

2011-06-02 17:27:49

iphone 多線程

2011-08-08 13:50:29

iPhone開發(fā) NSOperatio 多線程

2011-08-15 13:44:07

iPhone開發(fā)UITableView

2011-08-01 12:53:25

iPhone 多線程 線程

2011-07-08 16:43:46

iPhone Cocoa 多線程

2011-06-07 17:35:39

iphone 多線程

2013-07-16 10:12:14

iOS多線程多線程概念多線程入門

2011-08-10 15:48:10

iPhone網(wǎng)絡(luò)

2011-07-08 14:58:16

iPhone Xcode iOS

2011-07-08 16:02:24

iphone

2011-08-10 18:24:22

iPhone 圖形 繪圖

2011-08-02 17:37:01

IPhone開發(fā) 環(huán)境搭建

2011-07-06 17:40:43

iPhone SDK

2011-08-18 10:39:46

iPhone開發(fā)界面

2011-07-19 15:33:57

iPhone

2015-07-22 09:39:38

IOS多線程同步
點贊
收藏

51CTO技術(shù)棧公眾號