ios執行緒的五種使用方式

2021-09-01 19:33:37 字數 1875 閱讀 6754

//第一種方式  手動建立並啟動

nsthread *t = [[nsthread alloc] initwithtarget:self selector:@selector(method) object:nil];

[t start];

//第二種方式 類方法

[nsthread detachnewthreadselector:@selector(method) totarget:self withobject:nil];

//第三種方式 類方法

[self performselectorinbackground:@selector(method) withobject:nil];

//第四種方式 block 語法

nsoperationqueue *operationqueue = [[nsoperationqueue alloc] init];

//會開啟乙個多執行緒,呼叫block

[operationqueue addoperationwithblock:^

}];//第五種 執行緒佇列(執行緒池)

nsoperationqueue *operationqueue2 = [[nsoperationqueue alloc] init]; //相當於乙個執行緒池,裡面可以放很多執行緒,這個執行緒池管理多個執行緒的排程,可以給執行緒設定優先順序,併發數

operationqueue2.maxconcurrentoperationcount = 1; //設定最大併發數量(併發=同時進行)

//建立執行緒

nsinvocationoperation *operation1 = [[nsinvocationoperation alloc] initwithtarget:self selector:@selector(thread1) object:nil];

//設定執行緒的優先順序

[operation1 setqueuepriority:nsoperationqueuepriorityverylow];

nsinvocationoperation *operation2 = [[nsinvocationoperation alloc] initwithtarget:self selector:@selector(thread1) object:nil];

[operation2 setqueuepriority:nsoperationqueuepriorityveryhigh];

//將執行緒新增到執行緒池

[operationqueue2 addoperation:operation1];

[operationqueue2 addoperation:operation2];

//----------------------回到主線程--------------------------------

//在多執行緒中可能載入資料,載入完了之後要重新整理ui, ui必須在主線程上面操作,在多執行緒的方法中這樣呼叫

[self performselectoronmainthread:@selector(thread1) withobject:nil waituntildone:yes];

//-----------------第六種執行緒的使用方式--------------

//這個函式是c的函式,字串test也要用c裡面的字串,是不帶@符號的

dispatch_queue_t queue = dispatch_queue_create("test", null);

dispatch_async(queue, ^

//回到主線程執行

dispatch_async(dispatch_get_main_queue(), ^

});});

-(void)thread1

執行緒的五種建立方式

執行緒的五種建立方式 1 繼承thread類,重寫run 方法,呼叫start 方法啟動執行緒public class testthread1 extends thread public static void main string args 2 實現runnable介面,重寫run 方法,建立r...

ios 檔案儲存的五種方式

為了將應用資料儲存到硬碟中,ios提供了 plist 屬性列表 資料庫儲存 sqlite 物件歸檔 nscoding core data,nsuserdefaults 1.plist屬性列表操作用來儲存一些固定的資料型別 nsarray nsstring nsdata nsnumber nsdict...

IOS 建立和使用多執行緒的6種方式

非原創 文字來自 純屬複製 程序和執行緒概念 乙個程式包含乙個以上的程序,而乙個程序又可以包含乙個以上的執行緒,每乙個程序都有自己獨立的記憶體空間,相應的乙個程序中的所有執行緒都共享該記憶體空間。程序 是乙個具有一定獨立功能的程式關於某個資料集合的一次執行活動。它是作業系統動態執行的基本單元,在傳統...