zoukankan      html  css  js  c++  java
  • 并发初解

    并发是什么

    自Java9之后应该是引入了不少并行的API,可能用来和并发相比较,会更容易理解些

    并发:

    我:煮饭的时候,边炒菜,焖锅的时候边切菜

    并行:

    我:炒菜

    老婆:切菜

    当然其实这个不是很准确,因为并发也可以有多个处理器(我和老婆都算单独的一个处理器)

    只是说单处理器,应当没有实际意义上的并行,因为不可能【同时】执行

    那么我理解的并发,其实意图在于可以尽量以多任务的形式尽快将任务完成,并且任务之间可以切换执行

    那么从这个层面理解,其实在多核处理器中,并发才能体现优势

    而JAVA本身对于多线程的支持,使得我们在业务建模的时候不用过多考虑这点,建模起来也会比较简单些

    现代编程中应该也会更追求前、中、后台,技术的细节会更多被屏蔽掉

    使得应用更容易编程

    但并发&多线程也引入新的问题域

    1、安全性    - 安全性指错误的事情不会发生;比如一些线程不安全的类,在高并发下,会造成对象破坏的情况

    2、活跃性 - 活跃性是指正确的事情,终将发生;比如高并发下,我们希望多一个账户的多次扣款正常进行,且金额正确

    3、性能   - 我们在期望安全性和活跃性的同时,会希望正确的事情尽快发生,也就是性能问题 。单线程一般是极限性能,只做一件事,可是多线程,理论上会存在线程切换上下文和访问共享数据(需要进行同步)的问题

    一般认为安全性和活跃性是必须的,其次要平衡性能。因为有时候性能可能会破坏安全性

  • 相关阅读:
    Silverlight 4中把DataGrid数据导出Excel
    C#正则的委托和lambda表达式用法
    C#简单的写日志方法
    GAE上传失败
    asp.net后台进程做定时任务
    ASP.NET页面生命周期描述
    巴士电台新版发布
    jQuery 1.51.7一些值得注意的更新
    wxPython应用心得
    Ajax保留浏览器历史的两种解决方案(Hash&Pjax)[转]
  • 原文地址:https://www.cnblogs.com/gabin/p/13491805.html
Copyright © 2011-2022 走看看