iOS與多線程(三) —— NSOperation實現(xiàn)多并發(fā)之創(chuàng)建隊列和開啟線程

版本記錄

版本號 時間
V1.0 2017.08.16

前言

信號量機制是多線程通信中的比較重要的一部分做葵,對于NSOperation可以設置并發(fā)數(shù)得院,但是對于GCD就不能設置并發(fā)數(shù)了拜银,那么就只能靠信號量機制了缔逛。接下來這幾篇就會詳細的說一下并發(fā)機制。感興趣的可以看這幾篇文章冰悠。
1. iOS與多線程(一) —— GCD中的信號量及幾個重要函數(shù)
2. iOS與多線程(二) —— NSOperation實現(xiàn)多并發(fā)之創(chuàng)建任務

隊列的創(chuàng)建

上一篇主要講了NSOperation API接口以及創(chuàng)建任務的方法堡妒,下面就說一下隊列的創(chuàng)建方法。NSOperationQueue可以分為兩種隊列溉卓,主隊列和其他隊列皮迟,其他隊列里面還可以實現(xiàn)串行和并發(fā)功能。

  • 主隊列:添加到主隊列中的任務都會放在主線程中執(zhí)行桑寨。
NSOperationQueue *queue = [NSOperationQueue mainQueue];
  • 其他隊列:添加到其他隊列中的任務都會放在子線程中執(zhí)行伏尼。
NSOperationQueue *queue = [[NSOperationQueue alloc] init];

添加任務到隊列

下面我們就看一下添加任務到隊列。

方法1

可以使用方法- (void)addOperation:(NSOperation *)op;

下面還是看代碼尉尾。

#import "JJOperationQueueVC.h"

@interface JJOperationQueueVC ()

@end

@implementation JJOperationQueueVC

#pragma mark - Override Base Function

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor whiteColor];
    
    //創(chuàng)建隊列
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    
    //創(chuàng)建任務爆阶,你也可以使用NSInvocationOperation,我這里就只用NSBlockOperation做個例子了
    NSBlockOperation *blockOperation = [NSBlockOperation blockOperationWithBlock:^{
        NSLog(@"blockOperation");
        NSLog(@"thread = %@",[NSThread currentThread]);
    }];
    
    [queue addOperation:blockOperation];
}

@end

看輸出結果

2017-08-16 17:36:13.590386+0800 JJOC[10142:4509963] blockOperation
2017-08-16 17:36:13.590538+0800 JJOC[10142:4509963] thread = <NSThread: 0x17407ff40>{number = 4, name = (null)}

可以發(fā)現(xiàn)開啟了新的線程,同時將任務放在隊列里面辨图,任務就會立即執(zhí)行班套,不同調(diào)用其他方法才開始執(zhí)行。

方法2

使用- (void)addOperationWithBlock:(void (^)(void))block NS_AVAILABLE(10_6, 4_0);

還是直接看代碼徒役。

#import "JJOperationQueueVC.h"

@interface JJOperationQueueVC ()

@end

@implementation JJOperationQueueVC

#pragma mark - Override Base Function

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor whiteColor];
    
    //創(chuàng)建隊列
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    
    [queue addOperationWithBlock:^{
        NSLog(@"blockOperation");
        NSLog(@"thread = %@",[NSThread currentThread]);
    }];
}

@end

下面看輸出結果

2017-08-16 17:38:32.428260+0800 JJOC[10146:4510462] blockOperation
2017-08-16 17:38:32.428661+0800 JJOC[10146:4510462] thread = <NSThread: 0x170075a00>{number = 4, name = (null)}

可見也開啟了一個新的線程孽尽。

后記

未完,待續(xù)~~~

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末忧勿,一起剝皮案震驚了整個濱河市杉女,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鸳吸,老刑警劉巖熏挎,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異晌砾,居然都是意外死亡坎拐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門养匈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哼勇,“玉大人,你說我怎么就攤上這事呕乎』#” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵猬仁,是天一觀的道長帝璧。 經(jīng)常有香客問我,道長湿刽,這世上最難降的妖魔是什么的烁? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮诈闺,結果婚禮上渴庆,老公的妹妹穿的比我還像新娘。我一直安慰自己雅镊,他們只是感情好把曼,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著漓穿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪注盈。 梳的紋絲不亂的頭發(fā)上晃危,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音,去河邊找鬼僚饭。 笑死震叮,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的鳍鸵。 我是一名探鬼主播苇瓣,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼偿乖!你這毒婦竟也來了击罪?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤贪薪,失蹤者是張志新(化名)和其女友劉穎媳禁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體画切,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡竣稽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了霍弹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毫别。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖典格,靈堂內(nèi)的尸體忽然破棺而出岛宦,到底是詐尸還是另有隱情,我是刑警寧澤钝计,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布恋博,位于F島的核電站,受9級特大地震影響私恬,放射性物質發(fā)生泄漏债沮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一本鸣、第九天 我趴在偏房一處隱蔽的房頂上張望疫衩。 院中可真熱鬧,春花似錦荣德、人聲如沸闷煤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲤拿。三九已至,卻和暖如春署咽,著一層夾襖步出監(jiān)牢的瞬間近顷,已是汗流浹背生音。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窒升,地道東北人缀遍。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像饱须,于是被迫代替她去往敵國和親域醇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容