iOS-多线程(GCD)

2016-06-13  本文已影响0人  沉梦昂志__

简介

什么是GCD
全称是Grand Central Dispatch,可译为“伟大的中枢调度器”
纯C语言,提供了非常多强大的函数

任务和队列

执行任务

队列的类型

容易混淆的术语

并发队列

串行队列

线程间通信示例

延时执行

一次性代码

定时器

// 创建Timer

      self.timer=dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_main_queue());

// 设置定时器的触发时间(1秒后)和时间间隔(每隔2秒)

    dispatch_source_set_timer(self.timer,dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), 2 * NSEC_PER_SEC, 0);

// 设置回调

   dispatch_source_set_event_handler(self.timer, ^{
  NSLog(@"Timer %@", [NSThread currentThread]);
  });

// 开始定时器

  dispatch_resume(self.timer);

// 取消定时器

dispatch_cancel(self.timer);
self.timer = nil;

快速迭代

队列组

 dispatch_group_t group =  dispatch_group_create();
 dispatch_group_async(group,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), 
^{
// 执行1个耗时的异步操作
});
dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
 ^{
// 执行1个耗时的异步操作
});

//

  dispatch_group_notify(group, dispatch_get_main_queue(),
^{
        // 等前面的异步操作都执行完毕后,回到主线程...
});

单例模式

上一篇 下一篇

猜你喜欢

热点阅读