关闭

线程中同步、异步、串行、并行

标签: 线程异步
1210人阅读 评论(3) 收藏 举报
分类:

本文出自博客Vander丶CSDN博客,如需转载请标明出处,尊重原创谢谢

博客地址:http://blog.csdn.net/l540675759/article/details/62932901

从线程的时效来看,分别同步和异步

同步:就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,程序也不会接着往下执行。按照这个定义,其实绝大多数函数都是同步调用。

异步:当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调(Handler机制)来通知调用者。

下面举两个同步、异步的例子:
主题:周末在家看电视,然后想烧一壶水。
同步处理:
同步处理
异步处理:
异步处理


从线程的执行来看,线程队列分为串行队列和并行队列

串行队列:串行队列的特点是队列内的线程是一个一个执行,直到结束。

并行队列:并行队列的特点是队列中所有线程的执行结束时必须是一块的,队列中其他线程执行完毕后,会阻塞当前线程等待队列中其他线程执行,然后一块执行完毕。

了解完同步、异步的概念后,经过和串行、并行组合分为四种状态:
这里引用Love@YR作者的串行,并行的博文几张图,让大家加深理解

这里写图片描述

(1)串行同步
图1是串行同步的情况,队列中的线程依次执行,并且主线程阻塞,等待任务的完成。

(2)串行异步
图2是串行异步的情况,队列中的线程依次执行,同时主线程还在继续执行。

(3)并行同步
图3是并行同步的情况,队列中的线程,会一起执行,但是同一时段只能有一个线程执行其他线程等待,等所有任务执行完,主线程继续执行。

(4)并行异步
图4是并行异步的情况,队列中的线程,一起执行,主线程也会继续执行。

由上图可以发现,串行和并行最大的不同的就是执行上,串行是依次执行,只有当前线程结束之后,另一个线程才开启。而并行是所有任务一起执行,执行的表现形式不同。

4
3
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

关于串行 并行 同步 异步

串行 并行 同步 异步
  • jingqiu880905
  • jingqiu880905
  • 2016-06-17 14:28
  • 2252

GCD使用 串行并行队列 与 同步异步执行的各种组合 及要点分析

GCD使用中,使用并行串行队列和同步异步执行的各种情况组合,以及使用时注意点的分析
  • a359696929
  • a359696929
  • 2016-05-10 16:06
  • 3836

IOS学习 GCD 基础 串行/并行/主线程、同步/异步

@implementation ViewController - (void)viewDidLoad {     [super viewDidLoad];     // Do any ad...
  • ridxmc
  • ridxmc
  • 2016-03-30 23:48
  • 1143

iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等(有示例代码)

进程 正在运行中的程序被称作进程,负责程序运行的内存分配;每一个进程都有自己独立的虚拟内存空间。 线程 进程中的一个对立的执行路径被称为线程,一个进程中至少包含一条线程,该线程被称为主线程。 ...
  • u010828718
  • u010828718
  • 2016-09-20 16:15
  • 483

gcd中同步异步并行串行线程数目的关系

gcd的功能很强大,使用起来也很简便,但理解起来还是有些费劲的。 下面记录的主要是gcd同步异步并行串行得关系,gcd的功能远不止这些。 一、串行队列 1、同步运行 dispatch_queue_...
  • gx_wqm
  • gx_wqm
  • 2016-07-24 11:58
  • 389

进程/多线程/同步任务/异步任务/串行队列/并行队列

进程:进程是正在运行的程序的实例,是线程的容器。 线程:线程是进程中的一个独立的执行路径,是进程的基本执行单元。1个线程中任务的执行是串行的,依次执行。 多线程:一个进程中有多条执行路径。同一时间,C...
  • mingnuo1
  • mingnuo1
  • 2015-11-24 22:27
  • 879

IOS多线程知识总结/队列概念/GCD/主队列/并行队列/全局队列/主队列/串行队列/同步任务/异步任务区别

进程:正在进行中的程序被称为进程,负责程序运行的内存分配;每一个进程都有自己独立的虚拟内存空间       线程:线程是进程中一个独立的执行路径(控制单元);一个进程中至少包含一条线程,即主线程 ...
  • Allen_iOS
  • Allen_iOS
  • 2015-08-06 17:13
  • 1105

iOS学习笔记74-IOS多线程知识总结/队列概念/GCD/主队列/并行队列/全局队列/主队列/串行队列/同步任务/异步任务区别附代码

进程:正在进行中的程序被称为进程,负责程序运行的内存分配;每一个进程都有自己独立的虚拟内存空间 线程:线程是进程中一个独立的执行路径(控制单元);一个进程中至少包含一条线程,即主线程   ...
  • m18510011124
  • m18510011124
  • 2016-04-26 17:24
  • 329

iOS 多线程 进程、线程、并发、串行、同步、异步—— iOS 编码复习(四)(多线程2)

什么是线程和进程?这个问题一直困扰着我。经过多番查询、思考、总结之后,终于总结了下我自己比较通俗的说法,一块给大家说说: 1:进程是指系统正在运行的一个应用程序;每个进程之间是独立的,每个进程均运行在...
  • u012297622
  • u012297622
  • 2016-03-09 01:27
  • 631

并行传输与串行传输(同步通信与异步通信区别)

1.并行传输: 字符编码的各位(比特)同时传输; 2.串行传输: 将组成字符的各位串行地发往线路;         有两种传输方式: 1)同步传输;         2)异步传输;...
  • yirenyang
  • yirenyang
  • 2015-02-06 15:58
  • 11937
    个人资料
    • 访问:57120次
    • 积分:1176
    • 等级:
    • 排名:千里之外
    • 原创:36篇
    • 转载:0篇
    • 译文:3篇
    • 评论:117条
    博客专栏