91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IOS 三種線程操作方式詳解

發布時間:2020-08-02 13:27:15 來源:網絡 閱讀:294 作者:RoderickKennedy 欄目:移動開發

一、IOS 實現線程操作方式分別有:NSThread,Cocoa NSOperation,GCD(Grand Central Dispatch)三種;

  NSThread其優點:相比其他兩個輕量級;缺點:需要自己管理線程的生命周期,線程同步;

    Cocoa Operation的優點:不需要關心線程管理,數據同步的事情,可以把精力放在自己需要執行的操作上;實現相關類NSOperation,NSOperationQueue。NSOperation是個抽象類,使用它必須用它的子類,可以實現它或者使用它定義好的兩個子類:NSInvocationOperation 和 NSBlockOperation。創建NSOperation子類的對象,把對象添加到NSOperationQueue隊列里執行。

    Grand Central Dispatch (GCD)是Apple開發的一個多核編程的解決方法。在iOS4.0開始之后才能使用。GCD是一個替代諸如NSThread, NSOperationQueue, NSInvocationOperation等技術的很高效和強大的技術

二、線程實現方法介紹:

    NSThread有兩種直接創建方式:

- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument

+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument

此外可以用NSObject的類方法  performSelectorInBackground:withObject: 創建一個線程:

線程鎖對象:循環鎖NSRecursiveLock,條件鎖NSConditionLock,分布式鎖NSDistributedLock

    Cocoa Operation

dispatch_queue_t  serialQueue = dispatch_queue_create("roderick.m", DISPATCH_QUEUE_SERIAL);

dispatch_queue_t  concurrentQueue = dispatch_queue_create("roderick.h", DISPATCH_QUEUE_CONCURRENT);



dispatch_async(concurrentQueue, ^(void){

        for (int i = 0; i < 100; i++) {

            NSLog(@"%@ ====== %d",[NSThread currentThread],i);

        }

    });


dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){

        

        for (int i = 0; i < 100; i++) {

            NSLog(@"%@ ====== %d",[NSThread currentThread],i);

            [NSThread sleepForTimeInterval:0.1];

        }

    });


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凯里市| 临汾市| 教育| 贵德县| 伊宁市| 布尔津县| 南部县| 无为县| 清徐县| 平果县| 徐汇区| 兴安盟| 大余县| 桐梓县| 青海省| 阿城市| 成都市| 谢通门县| 张家港市| 梁平县| 南澳县| 青海省| 申扎县| 寻甸| 马公市| 金平| 德钦县| 鄢陵县| 土默特右旗| 民乐县| 茌平县| 专栏| 桂阳县| 大庆市| 蒲江县| 闵行区| 井研县| 平谷区| 万宁市| 惠水县| 新民市|