1. 并发与并行
1.1 并发(concurrent)
- 一段时间内有多个程序需要执行,其处于启动与执行完毕之间,都在一台处理机上执行,并发中存在两种关系:同步和互斥(排斥临界资源)
- 在单CPU系统中,在某一时刻只能让一个线程运行,系统以时间片轮巡的方式进行线程调度,通过不断切换线程让其运行
1.2 并行(parallel)
- 多个程序在多个处理器上执行,即同一个时刻有多个进程在多个处理器上执行
- 在多cpu系统中,同一时刻可以支持两个以上的线程同时运行
2. 同步与异步
- 同步(synchronous):顺序执行,需要协调等待程序执行调用时,调用方得等待这个调用返回结果才能继续往后执行,即顺序执行代码片段;进程间相互依赖;
- 异步(asynchronous):彼此独立,互不干扰和同步相反,调用方不会等待得到结果,而是在调用发出后调用者可用继续执行后续操作,被调用者通过状态来通知调用者,或者通过回调函数来处理这个调用;
3. 单线程与多线程
- 线程是cpu资源分配和调度的基本单位
- 多线程是进程中并发运行的一段代码
4. 异步与多线程
- 异步与多线程不是对等关系,多线程是实现异步的方式,异步是多线程的最终目的
- 相同点: 避免线程阻塞、占用系统资源,提高软件的响应性
- 不同点: 线程不是一个计算机硬件的功能,而是操作系统提供的一种逻辑功能;异步操作无须额外的线程负担,并且使用回调的方式进行处理
posted @
2020-07-16 22:58
litchi99
阅读(
342)
评论()
编辑
收藏
举报