线程中同步、异步、串行、并行
2017-03-17 22:36
260 查看
本文出自博客Vander丶CSDN博客,如需转载请标明出处,尊重原创谢谢
异步:当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调(Handler机制)来通知调用者。
下面举两个同步、异步的例子:
主题:周末在家看电视,然后想烧一壶水。
同步处理:
异步处理:
并行队列:并行队列的特点是队列中所有线程的执行结束时必须是一块的,队列中其他线程执行完毕后,会阻塞当前线程等待队列中其他线程执行,然后一块执行完毕。
了解完同步、异步的概念后,经过和串行、并行组合分为四种状态:
这里引用Love@YR作者的串行,并行的博文几张图,让大家加深理解
(1)串行同步
图1是串行同步的情况,队列中的线程依次执行,并且主线程阻塞,等待任务的完成。
(2)串行异步
图2是串行异步的情况,队列中的线程依次执行,同时主线程还在继续执行。
(3)并行同步
图3是并行同步的情况,队列中的线程,会一起执行,但是同一时段只能有一个线程执行其他线程等待,等所有任务执行完,主线程继续执行。
(4)并行异步
图4是并行异步的情况,队列中的线程,一起执行,主线程也会继续执行。
由上图可以发现,串行和并行最大的不同的就是执行上,串行是依次执行,只有当前线程结束之后,另一个线程才开启。而并行是所有任务一起执行,执行的表现形式不同。
博客地址:http://blog.csdn.net/l540675759/article/details/62932901
从线程的时效来看,分别同步和异步
同步:就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,程序也不会接着往下执行。按照这个定义,其实绝大多数函数都是同步调用。异步:当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调(Handler机制)来通知调用者。
下面举两个同步、异步的例子:
主题:周末在家看电视,然后想烧一壶水。
同步处理:
异步处理:
从线程的执行来看,线程队列分为串行队列和并行队列
串行队列:串行队列的特点是队列内的线程是一个一个执行,直到结束。并行队列:并行队列的特点是队列中所有线程的执行结束时必须是一块的,队列中其他线程执行完毕后,会阻塞当前线程等待队列中其他线程执行,然后一块执行完毕。
了解完同步、异步的概念后,经过和串行、并行组合分为四种状态:
这里引用Love@YR作者的串行,并行的博文几张图,让大家加深理解
(1)串行同步
图1是串行同步的情况,队列中的线程依次执行,并且主线程阻塞,等待任务的完成。
(2)串行异步
图2是串行异步的情况,队列中的线程依次执行,同时主线程还在继续执行。
(3)并行同步
图3是并行同步的情况,队列中的线程,会一起执行,但是同一时段只能有一个线程执行其他线程等待,等所有任务执行完,主线程继续执行。
(4)并行异步
图4是并行异步的情况,队列中的线程,一起执行,主线程也会继续执行。
由上图可以发现,串行和并行最大的不同的就是执行上,串行是依次执行,只有当前线程结束之后,另一个线程才开启。而并行是所有任务一起执行,执行的表现形式不同。
相关文章推荐
- 线程的同步、异步、串行、并行的关系
- iOS-线程之GCD方式---之同步异步和串行队列并行队列之间的关系
- iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等
- gcd中同步异步并行串行线程数目的关系
- iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等(有示例代码)
- iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等
- 进程/多线程/同步任务/异步任务/串行队列/并行队列
- 进程、线程知识点总结和同步(消费者生产者,读者写者三类问题)、互斥、异步、并发、并行、死锁、活锁的总结
- 多线程GCD+同步执行+异步执行+并行执行+串行执行+重复、分组、延迟、障碍方法
- GCD的定义及使用详解(同步异步、并发串行、线程间通信、延时执行、只执行一次代码)
- 串行、并发、并行、同步、异步
- GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- 异步VS同步、串行VS并行
- 开发要搞清楚什么是并发,并行,串行,同步,异步?
- 串行和并行与异步和同步的思考
- ios使用GCD来执行同步或异步串行、并行操作。
- 多线程单线程,同步异步,并发并行,串行队列并行队列,看这里就对了
- 同步,异步,串行,并行队列
- iOS -- 进程/多线程/同步任务/异步任务/串行队列/并行队列(对比分析)
- 11.python并发入门(part1 初识进程与线程,并发,并行,同步,异步)