亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

乌拉特中旗| 白河县| 威海市| 松江区| 台中市| 枝江市| 安陆市| 威宁| 灵川县| 咸丰县| 平凉市| 重庆市| 天柱县| 和龙市| 武隆县| 塘沽区| 柘荣县| 通渭县| 积石山| 怀柔区| 南昌市| 老河口市| 塘沽区| 北京市| 内黄县| 和田市| 曲麻莱县| 珲春市| 天台县| 屏南县| 宁都县| 石景山区| 同德县| 蓬溪县| 江西省| 沭阳县| 玉树县| 新乡市| 屏边| 威远县| 武清区|