线程、同步异步、队列
1 dispatch_queue_t _serialQueue = dispatch_queue_create("gao mao a", DISPATCH_QUEUE_SERIAL); 2 //(两个队列,都是同步的时候,就没什么卵用了,一个队列就够了) 3 dispatch_queue_t _gaomaoa = dispatch_queue_create("gao maoss a", DISPATCH_QUEUE_SERIAL); 4 5 NSLog(@"wo ca lei ge da ye ======= 1 \n"); 6 //同步 7 dispatch_async(_gaomaoa, ^{ 8 NSLog(@"wo ca lei ge da ye ======= 2 \n"); 9 NSLog(@"wo ca lei ge da ye ======= 2 \n"); 10 NSLog(@"wo ca lei ge da ye ======= 2 \n"); 11 NSLog(@"wo ca lei ge da ye ======= 2 \n"); 12 NSLog(@"wo ca lei ge da ye ======= 2 \n"); 13 }); 14 //异步 15 dispatch_sync(_serialQueue, ^{ 16 NSLog(@"wo ca lei ge da ye ======= 3 \n"); 17 NSLog(@"wo ca lei ge da ye ======= 3 \n"); 18 NSLog(@"wo ca lei ge da ye ======= 3 \n"); 19 NSLog(@"wo ca lei ge da ye ======= 3 \n"); 20 NSLog(@"wo ca lei ge da ye ======= 3 \n"); 21 }); 22 23 dispatch_sync(_serialQueue, ^{ 24 NSLog(@"wo ca lei ge da ye ======= 4 \n"); 25 NSLog(@"wo ca lei ge da ye ======= 4 \n"); 26 NSLog(@"wo ca lei ge da ye ======= 4 \n"); 27 NSLog(@"wo ca lei ge da ye ======= 4 \n"); 28 NSLog(@"wo ca lei ge da ye ======= 4 \n"); 29 }); 30 31 NSLog(@"wo ca lei ge da ye ======= 5 \n"); 32 33 NSLog(@"wo ca lei ge da ye ======= 6 \n");
打印结果
2016-03-29 16:33:07.522 neeq_second[903:130796] wo ca lei ge da ye ======= 1
2016-03-29 16:33:07.523 neeq_second[903:130796] wo ca lei ge da ye ======= 3
2016-03-29 16:33:07.523 neeq_second[903:130815] wo ca lei ge da ye ======= 2
2016-03-29 16:33:07.523 neeq_second[903:130796] wo ca lei ge da ye ======= 3
2016-03-29 16:33:07.523 neeq_second[903:130815] wo ca lei ge da ye ======= 2
2016-03-29 16:33:07.523 neeq_second[903:130796] wo ca lei ge da ye ======= 3
2016-03-29 16:33:07.523 neeq_second[903:130815] wo ca lei ge da ye ======= 2
2016-03-29 16:33:07.523 neeq_second[903:130796] wo ca lei ge da ye ======= 3
2016-03-29 16:33:07.523 neeq_second[903:130815] wo ca lei ge da ye ======= 2
2016-03-29 16:33:07.524 neeq_second[903:130796] wo ca lei ge da ye ======= 3
2016-03-29 16:33:07.524 neeq_second[903:130815] wo ca lei ge da ye ======= 2
2016-03-29 16:33:07.524 neeq_second[903:130796] wo ca lei ge da ye ======= 4
2016-03-29 16:33:07.524 neeq_second[903:130796] wo ca lei ge da ye ======= 4
2016-03-29 16:33:07.524 neeq_second[903:130796] wo ca lei ge da ye ======= 4
2016-03-29 16:33:07.524 neeq_second[903:130796] wo ca lei ge da ye ======= 4
2016-03-29 16:33:07.525 neeq_second[903:130796] wo ca lei ge da ye ======= 4
2016-03-29 16:33:07.525 neeq_second[903:130796] wo ca lei ge da ye ======= 5
2016-03-29 16:33:07.525 neeq_second[903:130796] wo ca lei ge da ye ======= 6
转载于:https://www.cnblogs.com/-yun/p/5333498.html
线程、同步异步、队列相关推荐
- GIL , 线程池 , 同步 , 异步 , 队列 , 事件
一.什么是GIL 官方解释: ''' In CPython, the global interpreter lock, or GIL, is a mutex that prevents multipl ...
- java 多线程(四)—— 线程同步/互斥=队列+锁
同步.异步.互斥的区别 在很多文章中,直接把同步缩小为互斥,并称之为同步.下面也是这样的. 一.线程同步 = 队列 + 锁 同步(这里说的其实是互斥)就是多个线程同时访问一个资源. 那么如何实现? 队 ...
- 阿里软件测试工程师手把手教学—作为测试,如何理解线程同步异步
案例描述 在日常测试中,当程序加载数据文件时,经常会出现页面卡住.程序不响应.程序崩溃等情况.,调查发现与程序进程中线程的同步和异步有关. 问题描述: 使用文件查看器打开压缩文件时,程序没有响应. 问 ...
- linux 线程同步消息队列,Linux 多线程同步之消息队列
消息队列是消息的链表,存放在内核中并有消息队列标示符标示. msgget用于创建一个新队列或打开一个现存的队列.msgsnd将新消息加入到消息队列中:每个消息包括一个long型的type:和消息缓存: ...
- 同步异步 阻塞 非阻塞 异步调用 线程队列 协程
阻塞 非阻塞 阻塞:程序遇到了IO操作 导致代码无法继续执行 交出了COU执行权 非阻塞:没有IO操作 或者即使遇到IO操作 也不阻塞代码执行 阻塞 就绪 运行指的是应用程序所处的状态写程序时 尽量减 ...
- 深度理解GCD线程死锁,队列,同步和异步,串行和并发
介绍GCD 可以先看看这个 "并发"指的是程序的结构,"并行"指的是程序运行时的状态 https://blog.csdn.net/sinat_35512245/ ...
- 【转】1.3异步编程:线程同步基元对象
开始<异步编程:同步基元对象(上)> 示例:异步编程:线程同步基元对象.rar 如今的应用程序越来越复杂,我们常常需要多线程技术来提高我们应用程序的响应速度.每个线程都由自己的线程ID,当 ...
- python 进程池阻塞和非阻塞_python 之 并发编程(进程池与线程池、同步异步阻塞非阻塞、线程queue)...
9.11 进程池与线程池 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 池子内什么时候装进程:并发的任务属于计算密集型池子内什么时候装线程:并发的任务属于IO ...
- iOS oc 线程 进程,同步异步,并发串行,来捋捋
2019独角兽企业重金招聘Python工程师标准>>> (一)大概念 gcd:使用起来就俩概念 1.任务(你想做的事) 2.队列(存放任务) gcd可以根据你的需要,将你的任务进行排 ...
- Python|线程和进程|阻塞|非阻塞|同步|异步|生成器和协程|资源竞争|进程间通信|aiohttp库|daemon属性值详解|语言基础50课:学习(11)
文章目录 系列目录 原项目地址 第34课:Python中的并发编程-1 线程和进程 多线程编程 使用 Thread 类创建线程对象 继承 Thread 类自定义线程 使用线程池 守护线程 资源竞争 G ...
最新文章
- TensorFlow(8)卷积神经网络实战(2)手写卷积池化
- 【分块】#6278. 数列分块入门 2 (区间修改、查询权值c在区间中的排名)
- mysql查看数据文件ibdata_如何从 ibdata文件 恢复 MySQL 数据库
- 【Android NDK 开发】NDK 交叉编译 ( NDK 函数库目录 | Linux 交叉编译环境搭建 | 指定头文件目录 | 指定函数库目录 | 编译 Android 命令行可执行文件 )
- android的shadowRadius属性说明
- python queue的用法_python Queue模块使用
- 干掉勒索病毒的22岁程序员自曝黑历史:中学是电脑白痴
- Ansdroid modem 开发(18)---LTE Live PS Performance
- 解封装(八):av_seek_frame改变播放进度函数
- MongoDB 固定集合详解
- 最新html word 分页符,分页符 有什么用
- WIN10 SVN图标不显示问题
- [NIPS 2018] Stacked Semantics-Guided Attention Model for Fine-Grained Zero-Shot Learning
- 声谱图(spectrogram)、FBank(Mel_spectrogram)和 MFCC(Mel倒谱)到底用哪个作为NN输入?
- Android实现计算器功能
- 20221222 Coppeliasim的视频导出功能
- 怎样优化IM即时通讯移动端APP的日志上报机制
- (2022年12月最新)SpringBoot远程代码执行whitelabel error page SpEL RCE漏洞复现
- 手机电池电量剩余通知
- ARM体系架构—ARMv7-A指令集:协处理器指令