1.队列的四种优先级
// DISPATCH_QUEUE_PRIORITY_HIGH
// DISPATCH_QUEUE_PRIORITY_DEFAULT
// DISPATCH_QUEUE_PRIORITY_LOW
// DISPATCH_QUEUE_PRIORITY_BACKGROUND
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 获取一个默认的队列
dispatch_queue_t mainQueue = dispatch_get_main_queue(); 获取主线程
2. 队列的三种队列类型
( 1 )串行队列
( 2 )并发队列
( 3 )主线程队列 < 特殊的串行队列 >
// 串行队列
dispatch_queue_t serialQueue = dispatch_queue_create("serialQueue", NULL);
// 并发队列
dispatch_queue_t concurrentQueue = dispatch_queue_create("concurrentQueue", DISPATCH_QUEUE_CONCURRENT);
3. 针对队列的操作
// 挂起队列
dispatch_suspend(queue1);
// 恢复队列
dispatch_resume(queue1);
4. 信号量的使用
// 信号量的使用
dispatch_semaphore_t semaphore = dispatch_semaphore_create(getdtablesize());
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
// fd = open("/etc/services", O_RDONLY);
// // 当完成时,释放掉文件描述符
// close(fd);
dispatch_semaphore_signal(semaphore);
5.dispatch groups 的使用
dispatch_group_notify(dispatch_group_create(), dispatch_get_main_queue(), ^{
NSLog(@"fhdakfa");
});
// DISPATCH_QUEUE_PRIORITY_DEFAULT
// DISPATCH_QUEUE_PRIORITY_LOW
// DISPATCH_QUEUE_PRIORITY_BACKGROUND
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 获取一个默认的队列
dispatch_queue_t mainQueue = dispatch_get_main_queue(); 获取主线程
2. 队列的三种队列类型
( 1 )串行队列
( 2 )并发队列
( 3 )主线程队列 < 特殊的串行队列 >
// 串行队列
dispatch_queue_t serialQueue = dispatch_queue_create("serialQueue", NULL);
// 并发队列
dispatch_queue_t concurrentQueue = dispatch_queue_create("concurrentQueue", DISPATCH_QUEUE_CONCURRENT);
3. 针对队列的操作
// 挂起队列
dispatch_suspend(queue1);
// 恢复队列
dispatch_resume(queue1);
4. 信号量的使用
// 信号量的使用
dispatch_semaphore_t semaphore = dispatch_semaphore_create(getdtablesize());
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
// fd = open("/etc/services", O_RDONLY);
// // 当完成时,释放掉文件描述符
// close(fd);
dispatch_semaphore_signal(semaphore);
5.dispatch groups 的使用
dispatch_group_notify(dispatch_group_create(), dispatch_get_main_queue(), ^{
NSLog(@"fhdakfa");
});