首先现在高并发的解决方案都非常成熟了,不仅是Java能做好,Pyton和C#也是毫无问题的!个人比较擅长C#,就分享下C#的高并发处理方式(非系统架构,仅从开发角度)。
1,异步编程
.NET 4.5 及以上框架中引入的async/await关键字c#线程池,异步编程已经非常方便了c#线程池,异步编程有两个好处:不阻塞主线程(比如UI线程),提高服务端应用的吞吐量。
2.并行编程
并行编程的出现实际上是随着CPU有多核而兴起的,目的是充分利用多核CPU的计算能力。并行的支持主要靠.NET 4.0引入的任务并行库和并行LINQ。
3响应式编程
这个了解的人可能不多,其实响应式编程把事件流看作数据流,数据流是从IEnumable中拉取的,而事件流是从IObservable推送给你的。为什么响应式编程可以实现并发呢?这是因为Rx做到线程不可知,每次事件触发,后续的处理会从线程池中任意取出一个线程来处理。且可以对事件设置窗口期和限流。
4数据流编程
数据流(DataFlow)编程可能大家就更陌生了,不过还是有些常用场景可以使用数据流来解决。数据流其实是在任务并行库(TPL)上衍生出来的一套处理数据的扩展(也结合了异步的特性),TPL也是处理并行编程中任务并行和数据并行的基础库。
再然后还有Actor模型,这个大家接触的更少就先不分享了。.NET经过多年的发展,目前已经非常丰富全面甚至冗余了,大家有关心的,请关注我,持续更新最新的.NetCore学习!
本文转自Eleven老师的知乎,欢迎大家关注,你会发现新的宝藏!
朝夕Net社区 专注.Net知识分享
扫码关注 免费获取最新开发课程合集
限时特惠:本站每日持续更新海量展厅资源,一年会员只需29.9元,全站资源免费下载
站长微信:zhanting688
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。