• 《C#并发编程经典实例》学习笔记-关于并发编程的几个误解


    误解一:并发就是多线程
    实际上多线程只是并发编程的一种形式,在C#中还有很多更实用、更方便的并发编程技术,包括异步编程、并行编程、TPL 数据流、响应式编程等。
    误解二:只有大型服务器程序才需要考虑并发
    服务器端的大型程序要响应大量客户端的数据请求,当然要充分考虑并发。但是桌面程序和手机、平板等移动端应用同样需要考虑并发编程,因为它们是直接面向最终用户的,而现在用户对使用体验的要求越来越高。程序必须能随时响应用户的操作,尤其是在后台处理时(读写数据、与服务器通信等),这正是并发编程的目的之一。
    误解三:并发编程很复杂,必须掌握很多底层技术
    C# 和 .NET 提供了很多程序库,并发编程已经变得简单多了。尤其是 .NET 4.5 推出了全新的 async 和 await 关键字,使并发编程的代码减少到了最低限度。

    上述摘自译者序。
    本书基本信息:
    著    [美] Stephen Cleary
    译    相银初

    市面上关于并发的技术书,大多是Java相关。有个前辈推荐了这本书,耐心看了一遍,真心觉得真是不错,决定精读并写一个系列笔记博客。前辈推荐的时候是去年年初,到现在决定写博客,已经一年半过去,羞愧羞愧,执行力不高,但总归是开始着手做了,希望能坚持下来。

    提到并发就不得不提并行,即并行(Parallel)和并发(Concurrent)的区别。
    知乎的一个回答我觉得拿来解释最合适不过,这个解释的角度是从CPU为出发点。
    并发与并行的区别? - 刘志军的回答 - 知乎

    并发是两个队列交替使用一台咖啡机,并行是两个队列同时使用两台咖啡机

    咖啡机指CPU,排队的队伍可以是线程(thread)也可以是进程(process)。
    进程(process)和线程(thread)的概念描述打算独立成文,下次就写。

    在对误解一的解释中,可以看出作者是认为并行编程也属于并发编程的。是的,并行应该是属于并发的一种,对并发的概念来说,并行可以认为是并发的一种特殊情况。

    在后续的笔记中我会将书中的伪代码实例尝试写成可运行的代码,用于自己强化理解和记忆,这也是精读的意义所在。写的代码有所不足之处,望不吝指教。

  • 相关阅读:
    JS事件
    我刚知道的WAP app中meta的属性(转载)
    监控Tomcat解决方案(监控应用服务器系列文章分享)
    Java实现注册邮箱激活验证
    使用iScroll时,input等不能输入内容的解决方法(share)
    iScroll.js 用法参考 (share)
    Myeclipse常用快捷键
    ajax+json+Struts2实现list传递实例讲解
    JSTL的c:forEach标签(${status.index})
    JAVA导出pdf实例
  • 原文地址:https://www.cnblogs.com/AlienXu/p/9388005.html
Copyright © 2020-2023  润新知