深入浅出理解同步 /异步/并发/并行/串行
2018-06-24 01:59:30来源:未知 阅读 ()
(1)从线程的时效来看:分为同步和异步
同步:多个任务情况下,一个任务A执行结束,才可以执行另一个任务B。只存在一个线程。
异步:多个任务情况下,一个任务A正在执行,同时可以执行另一个任务B。任务B不用等待任务A结束才执行。存在多条线程。
(2)从线程的执行来看:分为串行队列和并行队列
串行队列:串行队列的特点是队列内的线程是一个一个执行,直到结束。
并行队列:并行队列的特点是队列中所有线程的执行结束时必须是一块的,队列中其他线程执行完毕后,会阻塞当前线程等待队列中其他线程执行,然后一块执行完毕。
(3)线程的时效与执行相结合:
图片来源:https://blog.csdn.net/l540675759/article/details/62932901
(1)串行同步
图1是串行同步的情况,队列中的线程依次执行,并且主线程阻塞,等待任务的完成。
(2)并行同步
图3是并行同步的情况,队列中的线程,会一起执行,但是同一时段只能有一个线程执行其他线程等待,等所有任务执行完,主线程继续执行。
同步(单线程)的串行并行区别在于:
1.并行增加了等待时间,如果等待时间到了,任务还在执行,那么,重新设置等待时间,继续等待,不管等待的时候线程是否有空闲。
2.串行是对线程进行阻塞,一个任务执行完毕,线程不再阻塞,所以,不存在等待时间。
(3)串行异步
图2是串行异步的情况,队列中的线程依次执行,同时主线程还在继续执行。
(4)并行异步
图4是并行异步的情况,队列中的线程,一起执行,主线程也会继续执行。
异步(多线程)的串行并行区别在于:
1.串行异步只占用两个线程,一个主线程,不会阻塞的线程,一个次线程,执行原理和同步串行一样。
2.并行异步占用N个线程,多核CUP可以同时开启多条线程供多个任务同时执行,互不干扰。
(4)同步的并行即为并发(常见于es7的async await与node的单线程)。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 深入理解JavaScript是如何实现继承的 2020-02-25
- js工厂函数创建对象与对象构造函数的理解 2019-08-14
- JS变量、作用域 2019-08-14
- call,apply,bind的理解 2019-08-14
- 前端笔记之React(五)Redux深入浅出 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash