• 并发初解


    并发是什么

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

    并发:

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

    并行:

    我:炒菜

    老婆:切菜

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

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

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

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

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

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

    使得应用更容易编程

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

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

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

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

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

  • 相关阅读:
    很简单的字节转换函数
    PHP获取用户操作系统信息
    PHP调用COM获得服务器硬件信息
    杂碎记录
    Math类使用记录
    hbase命令使用记录
    shell脚本学习
    多个job存依赖关系如何使用
    hbase的API并且使用多个rowkey分段直接读取数据
    shell学习记录
  • 原文地址:https://www.cnblogs.com/gabin/p/13491805.html
Copyright © 2020-2023  润新知