Await Async和Thread.waitAll想法?未完待续
【管理员】四九-李冰-修行者(2216529884) 2017/7/3 17:15:12 看着就可以了,这种东西是有使用场景的。并不是你用了就一定有提升的
【管理员】上海-xx科技(lovepoint77@163.com) 2017/7/3 17:16:59
就算符合场景,那这个还是以 同步方式执行阿,看不出意义在哪
【管理员】四九-李冰-修行者(2216529884) 2017/7/3 17:16:59
主要就是给IO用的,web项目瓶颈在IO访问
它释放资源了
【技术支持】胡建-kukubashen<kukubashen@gmail.com> 2017/7/3 17:17:30
这个是以异步方式执行的。。。
【管理员】四九-李冰-修行者(2216529884) 2017/7/3 17:17:36
你无论用不用异步花费时间是一样多的,这能理解吧
【管理员】上海-xx科技(lovepoint77@163.com) 2017/7/3 17:18:25
我貌似把这边的异步 和脑子里想的 2个线程同步执行 搞混了?
【管理员】四九-李冰-修行者(2216529884) 2017/7/3 17:18:39
假设你的线程池里有1000个线程,同步方法就是一个请求占死一个线程,并发最高是不是就1000个请求
【管理员】四九-李冰-修行者(2216529884) 2017/7/3 17:19:25
异步IO就会把操作IO的线程给回收掉,等IO反馈之后重启工作线程
在大数据量操作时,提高了服务器请求吞吐量
【管理员】四九-李冰-修行者(2216529884) 2017/7/3 17:20:30
操作IO的线程的意思是工作池里的那个线程,IO和CPU有各自的调度器
异步会释放CPU的线程,从而增加吞吐量 胡建-kukubashen撤回了一条消息
【管理员】上海-xx科技(lovepoint77@163.com) 2017/7/3 17:22:11
道理是这样没错 很容易理解
那这一切都要归功于异步方法了,而不是 await
?
【管理员】四九-李冰-修行者(2216529884) 2017/7/3 17:23:05
await是语法糖啊
不过不推荐使用了,3.5的语法糖吧
现在不都用task了吗
【精通】四川-悠燃咲夜(370250398) 2017/7/3 17:24:28
像这样么
【管理员】四九-李冰-修行者(2216529884) 2017/7/3 17:24:33
可以看看mongodb的c#驱动源码,大量的异步方法
阅读一下差不多就理解了
【管理员】上海-xx科技(lovepoint77@163.com) 2017/7/3 17:25:11
我只想知道 await xxAsync() 有没有意义
。。
【管理员】四九-李冰-修行者(2216529884) 2017/7/3 17:25:54
加了就会等待,不加就直接执行下一句代码
【管理员】上海-xx科技(lovepoint77@163.com) 2017/7/3 17:26:32
是这样的
【入门】.Net 北京 海平面(43919168) 2017/7/3 17:26:38
async 和 await 结合 用的
【管理员】上海-xx科技(lovepoint77@163.com) 2017/7/3 17:26:48
不加我感觉有意义。 加了还有啥意义吗
【入门】.Net 北京 海平面(43919168) 2017/7/3 17:27:01
加了 就 是 异步 执行
就 会 开一个线程 执行
4.0 以后 才 有的
【管理员】上海-xx科技(lovepoint77@163.com) 2017/7/3 17:28:54
我只想知道 两个一起出现,有意义不,能节约时间不?
【入门】.Net 北京 海平面(43919168) 2017/7/3 17:29:51
有 啊,后台执行。执行完 返回 结果。
不 阻塞 主进程
精华:
异步IO就会把操作IO的线程给回收掉,等IO反馈之后重启工作线程
在大数据量操作时,提高了服务器请求吞吐量
操作IO的线程的意思是工作池里的那个线程,IO和CPU有各自的调度器
异步会释放CPU的线程,从而增加吞吐量
你说的清理掉应该不对,是接着去忙了,如果没事情忙的话,那就歇息一下。大概是这个意思。?
我对这个 await xxasync的想法本来是这样:1)方法A里面 分别异步开3个线程去执行耗时的查询,然后 Thread.waitAll之后统一返回给浏览器。 听你这样讲,现在理解貌似, 相差很远,一个是 CPU角度出发,一个是业务角度出发。
以上是关于await xxAsync()方法的使用记录。未完全搞清楚,待续。。求朋友们给一些 自己的见解。
Await Async和Thread.waitAll想法?未完待续的更多相关文章
- GitHub 入门不完全指南(未完待续)
我一直认为 GitHub 是一座宝藏,想让更多人的知道它.加入到这个社区中.本人能力有限,如果文中出现不对的地方,欢迎指正交流. 一.前言 大家好,我是削微寒(xuē wēi hán),一个走在进阶路 ...
- 从Socket入门到BIO,PIO,NIO,multiplexing,AIO(未完待续)
Socket入门 最简单的Server端读取Client端内容的demo public class Server { public static void main(String [] args) t ...
- jdbc14 及 jdbc16 共存所带来的问题【未完待续】
在JAVA中JDK版本号与JDBC版本号的一致性十分重要,开发都们经常会忽略了这一点导致非常多不必要的错误. 昨天给客户排查了一个关于EDB在JBoss中使用时关于这方面的问题,希望给大家一点启示. ...
- javascript有用小功能总结(未完待续)
1)javascript让页面标题滚动效果 代码如下: <title>您好,欢迎访问我的博客</title> <script type="text/javasc ...
- ASP.NET MVC 系列随笔汇总[未完待续……]
ASP.NET MVC 系列随笔汇总[未完待续……] 为了方便大家浏览所以整理一下,有的系列篇幅中不是很全面以后会慢慢的补全的. 学前篇之: ASP.NET MVC学前篇之扩展方法.链式编程 ASP. ...
- 关于DOM的一些总结(未完待续......)
DOM 实例1:购物车实例(数量,小计和总计的变化) 这里主要是如何获取页面元素的节点: document.getElementById("...") cocument.query ...
- 我的SQL总结---未完待续
我的SQL总结---未完待续 版权声明:本文为博主原创文章,未经博主允许不得转载. 总结: 主要的SQL 语句: 数据操作(select, insert, delete, update) 访问控制(g ...
- virtualbox搭建ubuntu server nginx+mysql+tomcat web服务器1 (未完待续)
virtualbox搭建ubuntu server nginx+mysql+tomcat web服务器1 (未完待续) 第一次接触到 linux,不知道linux的确很强大,然后用virtualbox ...
- MVC丶 (未完待续······)
希望你看了此小随 可以实现自己的MVC框架 也祝所有的程序员身体健康一切安好 ...
随机推荐
- 用crash来分析一下proc的文件访问
一般来说,用户通过fd的传入,调用open系统调用,来获取fd,然后read的时候,通过这个fd来查找对应的file* SYSCALL_DEFINE3(open, const char __user ...
- mysql分库分区分表
分表: 分表分为水平分表和垂直分表. 水平分表原理: 分表策略通常是用户ID取模,如果不是整数,可以首先将其进行hash获取到整. 水平分表遇到的问题: 1. 跨表直接连接查询无法进行 2. 我们需要 ...
- RabbitMQ系列教程之一:我们从最简单的事情开始!Hello World(转载)
RabbitMQ系列教程之一:我们从最简单的事情开始!Hello World 一.简介 RabbitMQ是一个消息的代理器,用于接收和发送消息,你可以这样想,他就是一个邮局,当您把需要寄送的邮件投递到 ...
- bat脚本基础教程
bat脚本就是DOS批处理脚本,就是将一系列DOS命令按照一定顺序排列而形成的集合,运行在windows命令行环境上.本文主要介绍bat脚本基础语法,希望完成本文内容学习之后具备基础的bat脚本开发能 ...
- Django添加ckeditor富文本编辑器
源码 https://github.com/django-ckeditor/django-ckeditor 通过pip安装. pip3 install django-ckeditor pip3 ins ...
- eclipse调试快捷键
Eclipse中有如下一些和运行调试相关的快捷键. 1. [Ctrl+Shift+B]:在当前行设置断点或取消设置的断点. 2. [F11]:调试最后一次执行的程序. 3. [Ctrl+F ...
- 把Swift中的String转成NSString ,获取NSString的方法
1.0 在Swift中的 String 并没有提供什么方法,直接把它自身转变成 Int .Float 等,而在OC中我们就可以这样 "123".integerValue 来获取它 ...
- 学习JS的心路历程-范围Scope和提升(Hoisting)
在上一篇提到了JS有三种声明变量的方式,分别是var.const及let,var和const let最大区别就是范围(scope)的限制.所以在这一篇我们会详谈何谓范围链及他们的复写优先级. 范围Sc ...
- myEclips 中的项目复制重命名
现在有个项目Pj ,要复制一个Pu 一,退出 myEclips. 二,找到Pj备份一份到其他目录. 三,进入myEclips,F2修改项目名Pj至Pu. 四,将备份拷贝回原目录. 五,将Pj重新引进m ...
- platform_device module
参考: http://www.wowotech.net/linux_kenrel/platform_device.html 1. platform_device 需要在注册 platform_driv ...