今天碰到一个需求,在网上找了一下资料,不得不感叹GCD之强大实用。
队列:串行队列,并行队列,全局队列,主队列
//串行队列 同步执行任务 会在当前线程内执行 # 不一定是主线程
//异步的方式 执行串行队列 会创建一个新的线程来执行任务
//串行的队列都是按照顺序来执行。就是任务1 -> 任务2 -》任务3
-
- -(void)demo
- {
-
-
- dispatch_queue_t queue=dispatch_queue_create("itcast", DISPATCH_QUEUE_SERIAL);
-
-
- dispatch_block_t task1=^{
- NSLog(@"%@ 同步执行了方法1",[NSThread currentThread]);
- };
-
- dispatch_block_t task2=^{
- NSLog(@"%@ 同步执行了方法2",[NSThread currentThread]);
- };
-
-
-
-
-
- dispatch_sync(queue, task1);
-
- dispatch_sync(queue, task2);
-
-
- }
-
-
-
- -(void)demo2
- {
-
-
- dispatch_queue_t queue=dispatch_queue_create("itcast", DISPATCH_QUEUE_SERIAL);
-
-
- dispatch_block_t task1=^{
- NSLog(@"%@ 异步执行了方法1",[NSThread currentThread]);
- };
-
- dispatch_block_t task2=^{
- NSLog(@"%@ 异步执行了方法2",[NSThread currentThread]);
- };
-
-
-
-
-
-
-
- dispatch_async(queue, task1);
-
- dispatch_async(queue, task2);
-
-
- }