必威-必威-欢迎您

必威,必威官网企业自成立以来,以策略先行,经营致胜,管理为本的商,业推广理念,一步一个脚印发展成为同类企业中经营范围最广,在行业内颇具影响力的企业。

下面写下GCD线程的基本使用必威:

2019-09-16 00:01 来源:未知

前几天上学了一下dispatch

下边写下GCD线程的骨干使用

/** * GCD 中央派发机制 Grand Central Dispatch * * 基于函数, 使用分发队列 */// 1.主线程队列, 等同[NSOperationQueue mainQueue]// 2.全局线程队列, 后台队列, 并行// 3.自定义线程队列, DISPATCH_QUEUE_SERIAL 串行 // DISPATCH_QUEUE_CONCURRENT 并行

 // 我们写一个打印函数,以便在控制台看到线程的运行顺序 - printNumber:(NSString *)name { for (int i = 0 ; i < 100; i++) { NSLog(@"%d, 当前线程:%@", i, [NSThread currentThread]); NSLog(@"%@", name); } }

// 创建自定义队列 dispatch_queue_t myQueue = dispatch_queue_create("myQueue", DISPATCH_QUEUE_PRIORITY_DEFAULT);// 队列优先级, 串行/ 并行// dispath_async (队列, 执行block); 异步 // dispath_sync (队列, 执行block); 同步// 串行队列dispatch_async(myQueue, ^{ [self printNumber:@"GCD"]; [self printNumber:@"G1"];});// 添加操作dispatch_async(myQueue, ^{ [self printNumber:@"G2"];});

控制台的运行结果是:先运行GCD,运行完之后再运行G1,G1运行完后再运行G2

// 并行队列dispatch_queue_t conQueue = dispatch_queue_create("conQueue", DISPATCH_QUEUE_CONCURRENT);//fdispatch_async(conQueue, ^{ [self printNumber:@"G1"]; [self printNumber:@"G2"];});dispatch_async(conQueue, ^{ [self printNumber:@"G3"];});dispatch_async(conQueue, ^{ [self printNumber:@"G4"];});

控制台运行结果:先并行异步运行G1 G3 G4 , 完成之后运行G2.
TAG标签:
版权声明:本文由必威发布于必威-编程,转载请注明出处:下面写下GCD线程的基本使用必威: