GCD网络多线程---同步执行,异步执行,串行队列,并行队列
来源:互联网 发布:写真制作软件 编辑:程序博客网 时间:2024/05/23 18:51
总结:同步(不管是串行还是并行)----不重新开辟子线程
异步(不管是串行还是并行)----开辟子线程
GCD:
dispatch queue
主线程的main queue
并行队列 global dispatch queue
串行队列serial queues一般用于按顺序同步访问
#pragma mark - 加载多线程
- (void) _loadMutil
{
//GCD基于C语言
//1.主对列:(串行队列)
dispatch_queue_t mainQueue=dispatch_get_main_queue();
//2.全局并行队列
dispatch_queue_t concu=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
//3.创建串行队列
dispatch_queue_t queueSerial=dispatch_queue_create("jrqueue1",DISPATCH_QUEUE_SERIAL);
//4.创建并行队列
dispatch_queue_t queueConcu=dispatch_queue_create("jrqueue2",DISPATCH_QUEUE_CONCURRENT);
//同步执行+串行队列
/*
dispatch_sync(queueSerial, ^{
[NSThread sleepForTimeInterval:2];
NSLog(@"同步串行队列1-----%@",[NSThread currentThread]);
});
dispatch_sync(queueSerial, ^{
[NSThread sleepForTimeInterval:2];
NSLog(@"同步串行队列2-----%@",[NSThread currentThread]);
});
*/
//同步执行+并行队列
/*
dispatch_sync(queueConcu, ^{
[NSThread sleepForTimeInterval:2];
NSLog(@"同步并行队列1-----%@",[NSThread currentThread]);
});
dispatch_sync(queueConcu, ^{
[NSThread sleepForTimeInterval:2];
NSLog(@"同步并行队列2-----%@",[NSThread currentThread]);
});
*/
//异步执行+串行队列-----开启一个子线程,且顺序执行
/*
dispatch_async(queueSerial, ^{
[NSThread sleepForTimeInterval:2];
NSLog(@"异步串行队列1-----%@",[NSThread currentThread]);
});
dispatch_async(queueSerial, ^{
[NSThread sleepForTimeInterval:2];
NSLog(@"异步串行队列2-----%@",[NSThread currentThread]);
});
dispatch_async(queueSerial, ^{
[NSThread sleepForTimeInterval:2];
NSLog(@"异步串行队列3-----%@",[NSThread currentThread]);
});
*/
//异步执行+并行队列----开启多个线程,且并发执行(无序)
/*
dispatch_async(queueConcu, ^{
[NSThread sleepForTimeInterval:2];
NSLog(@"异步并行队列1-----%@",[NSThread currentThread]);
});
dispatch_async(queueConcu, ^{
[NSThread sleepForTimeInterval:2];
NSLog(@"异步并行队列2-----%@",[NSThread currentThread]);
});
dispatch_async(queueConcu, ^{
[NSThread sleepForTimeInterval:2];
NSLog(@"异步并行队列3-----%@",[NSThread currentThread]);
});
*/
//主对列+同步执行-----死锁(将以下两个添加到主队列,等待前面的执行完成(loadView。loadData之类的),但是当执行到这一步时,形成死循环)
/*
dispatch_sync(mainQueue, ^{
[NSThread sleepForTimeInterval:2];
NSLog(@"同步主队列1-----%@",[NSThread currentThread]);
});
dispatch_sync(mainQueue, ^{
[NSThread sleepForTimeInterval:2];
NSLog(@"同步主队列2-----%@",[NSThread currentThread]);
});
*/
}
@end
- GCD网络多线程---同步执行,异步执行,串行队列,并行队列
- GCD使用 串行并行队列 与 同步异步执行的各种组合 及要点分析
- GCD使用 串行并行队列 与 同步异步执行的各种组合 及要点分析
- IOS 异步同步执行和并行串行队列的不解之缘
- 多线程GCD+同步执行+异步执行+并行执行+串行执行+重复、分组、延迟、障碍方法
- 关于GCD中串行队列、并发队列和同步执行、异步执行的探讨
- 进程/多线程/同步任务/异步任务/串行队列/并行队列
- GCD-同步,异步分别在串行队列,并发队列,主队列下的执行方式
- GCD 队列串行 并行 同步 异步 小例
- GCD编程中串行、并行、同步、异步的执行顺序
- GCD 主队列/并行队列/全局队列/主队列/串行队列/同步任务/异步任务区别
- GCD介绍。串行队列、并行队列、全局队列、主队列、同步任务、异步任务
- IOS多线程知识总结/队列概念/GCD/主队列/并行队列/全局队列/主队列/串行队列/同步任务/异步任务区别
- iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等
- iOS学习笔记74-IOS多线程知识总结/队列概念/GCD/主队列/并行队列/全局队列/主队列/串行队列/同步任务/异步任务区别附代码
- iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等(有示例代码)
- 勘错-串行、并发队列与同步异步执行
- iOS -- 进程/多线程/同步任务/异步任务/串行队列/并行队列(对比分析)
- 对const和static的理解
- _BIN 二进制排序
- 项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称
- 解析url中search
- POJ 3253 Fence Repair
- GCD网络多线程---同步执行,异步执行,串行队列,并行队列
- hdu 2955 Robberies
- shell脚本的学习
- C++开发BHO之HelloWorld
- opengl顶点数据传送和着色器处理(vao,vbo)
- [iOS] objc_setAssociatedObject objc_getAssociatedObject 简单明了的一个理解
- 人脸识别过程
- MFC通过com接口操作Excel
- POJ2407---Relatives(求单个数的欧拉函数)