热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

.NETCore同步和异步的差别是什么

是指Action方法。如:publicActionResultPushFileData([FromBody]Web_PushFileDatafile)//同步

是指Action方法。如:

public ActionResult PushFileData([FromBody] Web_PushFileData file) //同步

public async ActionResult PushFileData([FromBody] Web_PushFileData file) //异步

疑问:对于同步方法,每个请求都是使用同个线程吗?如客户A请求同步Action,还未执行完毕时,客户B请求会阻塞。

对于异步方法,每个请求都是从线程池拿空闲线程出来执行方法?也就是客户A和客户B请求方法,都是在不同子线程里分别执行的。

回答

题主说的应该是.NET 的 TPL编程。

  许多个人电脑和工作站都有多核CPU,可以同时执行多个线程。为了充分利用硬件,您可以将代码并行化,以便跨多个处理器分发工作。

  在过去,并行需要对线程和锁进行低级操作。Visual Studio和.NET框架通过提供运行时、类库类型和诊断工具来增强对并行编程的支持。这些特性是在.NET Framework 4中引入的,它们使得并行编程变得简单。您可以用自然的习惯用法编写高效、细粒度和可伸缩的并行代码,而无需直接处理线程或线程池。

  下图展示了.NET框架中并行编程体系结构。

使用场景

更深入的可以参考: 《并发编程是什么鬼》


推荐阅读
author-avatar
小甜甜小小郭
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有