//GCD:Grand Central Dispatch,大中央调度,是Apple推崇的多线程管理策略,是通过队列 对多线程进行管理
//第一种队列
//主调队列,在主线程中执行,并且是串行(一次操作一个)
dispatch_queue_t mainQueue = dispatch_get_main_queue();
//第二种队列
//全局队列,在子线程中执行,并且是并行(一次执行多个)
//参数1:设置队列的优先级(high,default,low,background)
//参数2:预留参数,未来使用
dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//第三种队列
//自定义队列,在子线程中执行,可以设置并行或串行
//参数1:区分队列的唯一标识,是一个可选项,如果不写就写NULL.如果写的话就必须规范的例子:"com.example.myqueue"
//参数2:是设置并行 DISPATCH_QUEUE_CONCURRENT 或串行的DISPATCH_QUEUE_SERIAL(NULL)
dispatch_queue_t customQueue = dispatch_queue_create("com.example.myqueue", NULL);
NSLog(@"%@%@%@",mainQueue,globalQueue,customQueue);
//同步执行sync(需要等待执行完毕);
//参数1:指定队列
//参数2:Block,执行的操作
// dispatch_sync(globalQueue, ^{
// [self banZhuanPlus];
// });
//异步执行async(不需要等待执行完毕)
dispatch_async(globalQueue, ^{
[self banZhuanPlus];
});
//延迟执行
// dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// <#code to be executed after a specified delay#>
// });
//第一种队列
//主调队列,在主线程中执行,并且是串行(一次操作一个)
dispatch_queue_t mainQueue = dispatch_get_main_queue();
//第二种队列
//全局队列,在子线程中执行,并且是并行(一次执行多个)
//参数1:设置队列的优先级(high,default,low,background)
//参数2:预留参数,未来使用
dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//第三种队列
//自定义队列,在子线程中执行,可以设置并行或串行
//参数1:区分队列的唯一标识,是一个可选项,如果不写就写NULL.如果写的话就必须规范的例子:"com.example.myqueue"
//参数2:是设置并行 DISPATCH_QUEUE_CONCURRENT 或串行的DISPATCH_QUEUE_SERIAL(NULL)
dispatch_queue_t customQueue = dispatch_queue_create("com.example.myqueue", NULL);
NSLog(@"%@%@%@",mainQueue,globalQueue,customQueue);
//同步执行sync(需要等待执行完毕);
//参数1:指定队列
//参数2:Block,执行的操作
// dispatch_sync(globalQueue, ^{
// [self banZhuanPlus];
// });
//异步执行async(不需要等待执行完毕)
dispatch_async(globalQueue, ^{
[self banZhuanPlus];
});
//延迟执行
// dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// <#code to be executed after a specified delay#>
// });
//单例Pen.h文件
(可以整片直接复制使用)