并发与并行,同步与异步,单线程与多线程

1. 并发与并行

1.1 并发(concurrent)

  • 一段时间内有多个程序需要执行,其处于启动与执行完毕之间,都在一台处理机上执行,并发中存在两种关系:同步和互斥(排斥临界资源)
  • 在单CPU系统中,在某一时刻只能让一个线程运行,系统以时间片轮巡的方式进行线程调度,通过不断切换线程让其运行

1.2 并行(parallel)

  • 多个程序在多个处理器上执行,即同一个时刻有多个进程在多个处理器上执行
  • 在多cpu系统中,同一时刻可以支持两个以上的线程同时运行

2. 同步与异步

  • 同步(synchronous):顺序执行,需要协调等待程序执行调用时,调用方得等待这个调用返回结果才能继续往后执行,即顺序执行代码片段;进程间相互依赖;
  • 异步(asynchronous):彼此独立,互不干扰和同步相反,调用方不会等待得到结果,而是在调用发出后调用者可用继续执行后续操作,被调用者通过状态来通知调用者,或者通过回调函数来处理这个调用;

3. 单线程与多线程

  • 线程是cpu资源分配和调度的基本单位
  • 多线程是进程中并发运行的一段代码

4. 异步与多线程

  • 异步与多线程不是对等关系,多线程是实现异步的方式,异步是多线程的最终目的
  • 相同点: 避免线程阻塞、占用系统资源,提高软件的响应性
  • 不同点: 线程不是一个计算机硬件的功能,而是操作系统提供的一种逻辑功能;异步操作无须额外的线程负担,并且使用回调的方式进行处理
posted @ 2020-07-16 22:58  litchi99  阅读(342)  评论(0编辑  收藏  举报