栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

串行并行、同步异步-部分转载-作为自用笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

串行并行、同步异步-部分转载-作为自用笔记

同步、异步:
指的是能否开启新的线程。
同步不能开启新的线程(有阻塞);异步可以。

串行、并行:
指的是任务的执行方式。
串行是指多个任务时,各个任务按顺序执行,完成一个之后才能进行下一个。
并行指的是多个任务可以同时执行。异步是多个任务并行的前提条件。

串行即上一个block任务执行完毕下一个任务才加入到队列中。
并行即其中的任务同时加入到队列中。(有可能进程就需要等待)

图1:同步,串行(只有一个主线程)
3个block都是同步即都阻塞当前线程,所以最后那句打印的任务就在3个block运行完之后。
3个block又是串行,所以一个一个运行

图2:异步,串行(有2个线程即一个主线程一个子线程)(鸡肋,不常见)
3个block都是异步,没有任务阻塞当前线程。所以最后那句打印是在第一句打印后就可以开始执行的。
3个block都是异步,异步会创建新的线程即至少有一个子线程。
没有任务阻塞当前线程,但是因为是串行所以只新开一个线程
3个block是串行,只有一个任务做完才会加另一个任务入队列,所以只需一个子线程。

图3:同步,并行(只有一个主线程)(鸡肋,不常见)
3个block都是同步即都阻塞当前线程,所以最后那句打印的任务就在3个block运行完之后。
3个block是并行,同时被加入队列中。
3个block都是同步,由于同步意味着等待,所以任务的执行表现为顺序执行,其实是一起加进去的但是等待的,跟串行的区别是串行是别的任务做完才把它加进队列中。
多开了新线程,但是因为同步阻塞所以只能等待

图4:异步,并行(有多个线程)
3个block都是异步,没有任务阻塞当前线程。所以最后那句打印是在第一句打印后就可以开始执行的。
3个block都是异步,异步会创建新的线程即至少有一个子线程。
3个block是并行,需创建多个子线程才能保证任务同时执行。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/737434.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号