论并行,并发,同步,异步之间的联系与区别-全球快看
前言
前段时间和一些网游大佬讨论异步,并发之类专业名字的区别,具体的实现,收获颇多,于是决定写下这篇博客作记录。
(资料图片)
下面我们将其两两分类进行讨论。
并行/并发(Parallelism/Concurrency)
这里借用GPT搜索的回答
并行:并行是指在同一时刻执行多个操作。并行通常需要多个线程或进程来实现。
并发:并发是指在一段时间内执行多个操作。并发操作通常是由单个线程或进程中实现的,荣国时间片轮转等机制来实现多个操作的交替。
如图所示。
并行是通过多核cpu的核心,创建多个线程,同时间执行多个任务。
并行是通过将cpu单个核心的使用按时间片来划分,交替给不同的任务执行,以达到同事执行多个任务的目的。
他们的相同点是,并行与并发都是为了提高系统吞吐量,响应速度,可靠性,提升cpu利用率而提出的技术。
在c#中可以使用Thread类创建线程来达到并行。
// 创建一个新线程using System.Diagnostics;Thread t1 = new Thread(new ThreadStart(DoWork));// 创建一个新线程Thread t2 = new Thread(new ThreadStart(DoWork));Console.WriteLine(Process.GetCurrentProcess().Threads.Count);//输出当前运行的线程数// 启动线程t1.Start();Console.WriteLine(Process.GetCurrentProcess().Threads.Count);//输出当前运行的线程数t2.Start();Console.WriteLine(Process.GetCurrentProcess().Threads.Count);//输出当前运行的线程数// 等待线程结束t1.Join();t2.Join();Console.WriteLine("Main thread exiting.");static void DoWork(){ Console.WriteLine("Worker thread started."); Thread.Sleep(2000);//模拟线程要执行的任务耗时2秒 Console.WriteLine("Worker thread exiting.");}
同步/异步(Synchronous/Asynchronous)
同样是借用GPT搜索的回答
同步:同步是指在执行某个操作时,必须等待该操作完成后才能继续执行下一个操作。同步操作通常是阻塞的,即在执行操作期间,程序会一直等待,知道操作完成为止。
异步:异步是指在执行某个操作时,不必等待该操作完成就可以继续执行下一步操作。异步操作通常是非阻塞的,即在执行操作其间,程序可以继续执行其他操作。
上面两句话其实非常好理解,我们借用微软官方文档做早餐的例子。假设一个人做早餐需要三步,第一步准备餐具,耗时五分钟,第二步煮咖啡,耗时十分钟,第三步烤面包,耗时十分钟。
在同步的模式下,由于线程是阻塞的,我们必须等待上一步操作完成才能继续下一步操作,那么我们的做早餐的步骤为准备餐具->煮咖啡->烤面包,总共耗时二十五分钟。
而我们知道,在现实生活中,准备完餐具之后,煮咖啡和烤面包两件事是可以同事进行的。
此时便是异步的模式,因为不会阻塞线程,程序运行至异步方法时会直接返回进行下一步操作,那么我们做早餐的步骤为准备餐具->煮咖啡,同时烤面包,总共耗时十五分钟。
在c#中,主要使用async await关键字及Task类来进行异步编程
同步代码:
var datetime1= new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();//获取当前时间戳await PrepareTableware();//准备餐具await MakeCoffee();//煮咖啡await Toast();//烤面包var datetime2= new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();Console.WriteLine("任务总耗时(单位秒):"+(datetime2-datetime1));//准备餐具async Task PrepareTableware(){ var obj = 1000; await Task.Delay(obj);//模拟准备餐具耗时}//煮咖啡async Task MakeCoffee(){ var obj = 2000; await Task.Delay(obj);//模拟煮咖啡耗时}//烤面包async Task Toast(){ var obj = 2000; await Task.Delay(obj);//模拟烤面包耗时}
异步代码:
var datetime1= new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();//获取当前时间戳await PrepareTableware();//准备餐具 var task1=MakeCoffee();//煮咖啡 var task2=Toast();//烤面包await Task.WhenAll(task1,task2);var datetime2= new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();Console.WriteLine("任务总耗时(单位秒):"+(datetime2-datetime1));//准备餐具async Task PrepareTableware(){ var obj = 1000; await Task.Delay(obj);//模拟准备餐具耗时}//煮咖啡async Task MakeCoffee(){ var obj = 2000; await Task.Delay(obj);//模拟煮咖啡耗时}//烤面包async Task Toast(){ var obj = 2000; await Task.Delay(obj);//模拟烤面包耗时}
后话
在实际的业务开发过程中,数据库查询,文件上下传,远程请求等场景,使用异步编程能有效的提高CPU利用率,提高程序的性能。
使用并行编程,即多线程编程,尤其需要注意线程安全问题,否则一旦线程死锁,程序就会崩溃。
以上便是个人对与同步,异步,并发,并行等概念一些粗浅的理解,如果有错误,欢迎大家指出。
标签:
精彩推送
亿纬锂能:一季度归母净利11.4亿元,同比增长118.68% 每日快看
App4月25日消息,亿纬锂能4月25日公告,2023年一季度营收111 86亿元,同比增长66 11%;归母净利11 40亿元,
天天快资讯丨均胜电子:一季度营收利润双增长 毛利率持续改善
4月25日,全球领先的汽车电子与汽车安全供应商均胜电子(600699 SH)发布2023年一季度财务报告。报告期内,公
每日速读!新华指数|4月上半月全国油茶籽精炼油(压榨一级)价格指数小幅上涨
“新华·中国油茶产品价格指数(常山发布)”数据显示,截至4月20日,全国各重点省区油茶生产加工企业油...
新闻快讯
X 关闭
X 关闭
新闻快讯
- 论并行,并发,同步,异步之间的联系与区别-全球快看
- 湘佳股份(002982.SZ):2022年下沉拓展的冰鲜渠道,目前已盈利
- 即时看!北向资金4月净卖出45.53亿元
- 当前热文:AI自有光丨智能化营销场渐热 阿维塔李鹏程:AIGC帮助车企高效、高质量营销
- 自贡富顺:按下整治“行动键” 地摊经济规范化
- 世界观速讯丨传承非遗旗袍文化,展示旗袍新形象 旗袍新形象展示会亮点纷呈
- 重庆密集柜有限公司 密集架档案柜种类及等级划
- 【全球新视野】兆丰股份:2023年一季度扣非后净利增长26.28%
- 最高检:加强公益诉讼,严惩侮辱诽谤英烈违法者
- 没想到你是这样的海贼王,开启与海贼的羁绊,喜欢你没道理!
- 统计局:一季度常州市建筑业产值同比增长6.1%
- 【提醒】上海人注意:白蚁又快飞出来了!家中发现白蚁筑巢,可以找他们 全球微资讯
- 五里堡街道香榭丽社区:清除枯木,排除隐患
- 每日快看:湖山未来社区迎来省级验收
- 2023广西柳州市柳北区白露街道办事处招聘编外合同制协办员2人公告
- 公告速递:南方季季享90天滚动持有债券基金暂停申购业务_全球播报
- 多部门开展五一节前联合执法 共建水上监管“安全网”_环球微速讯
- DXO拍照得分全球第一 Find X6 Pro重磅更新:相机新功能诚意满满|全球今亮点
- 天天视讯!孙建年主持召开市委常委会会议
- 旗滨集团(601636)4月27日主力资金净卖出5524.33万元
- 中国海军火速赴苏丹撤侨,网友感叹:这就是现实版《万里归途》!|环球新消息
- 纯白色t恤素材图片_少女骑士团纯白色无修 当前头条
- 环球头条:积极拓宽就业渠道 促进高校毕业生就业
- 百事通!书包带子怎么穿图解法不滑_书包带子怎么穿图解
- 肚皮舞入门基本动作有哪些视频_肚皮舞入门基本动作有哪些
- 食品小作坊生产许可证好办吗_食品小作坊生产许可证与食品企业生产许可证办理区别
- 精选!忆老婢
- 央广网“中华经典诵读大会”第一季首站落地宁波 将于5月正式启动
- 中国科学家将开展月球科研站建设研究-热点聚焦
- 九牧王:4月27日公司高管陈加贫增持公司股份合计45万股
- 环球微资讯!中国科大先研院对外发布创新“源”力量
- 银保监会:严禁为挪用于非生产经营用途的贷款办理续贷,不得用续贷掩盖信用风险_快看点
- 国电电力股东户数增加5.16%,户均持股15.11万元
- 贸泽电子蝉联“2022年度华强电子网优质供应商”奖
- 世界头条:神州泰岳跌15.87% 近1个月无研报
- 郑州市院校社区打好组合拳 多措并举筑牢安全防火墙 每日短讯
- 广发银行:智能网点信创跨平台项目
- 蓝朋友、高科技都有!《惊天救援》里的这些江苏消防元素燃爆了_快播报
- 辽宁严打涉税违法犯罪2022年查扣追缴税款7亿余元 天天观热点
- 奕丰 iFAST Corporation
- 金洞:张福生带队检查“五一”节前安全生产工作
- 世界实时:第107期3D晒票分享,爱世间温暖事物,沿途为晚霞驻足
- 慈利县岩泊渡镇万亩油菜丰收在望-全球新动态
- 世界快看点丨安杰思:拟发行1447万股 5月5日初步询价
- 男子聊天界面投屏广场成社死现场,网友:都知道你不回老婆信息了
- 选购整体橱柜的小方案 正确的厨房装修很重要-全球观焦点
- 微头条丨鹿邑:伯阳中学举行古诗文背默大赛
- 每日热文:与C罗出现情感危机?乔治娜:嫉妒者造谣 爱说闲话者传谣
- 棉被收纳袋批发_棉被收纳袋
- 31省份常住人口数据出炉:18地正增长,广东人最多 焦点讯息