JAVA并发图解

 更新时间:2021年09月06日 15:04:44   作者:Zephyr丶J  
这篇文章主要介绍了JAVA的并发,文中图解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

JAVA并发总览

核心问题

并不是程序的漏洞导致的,而是操作系统底层机制导致的

在这里插入图片描述

原子性:

在这里插入图片描述

可见性问题:

改的是缓存,但是缓存对另一个线程不可见

在这里插入图片描述

有序性问题:

正常应该先创建对象,再赋值;而编译器对指令执行顺序出于某些原因进行了优化,然后改变了执行顺序,如下:

在这里插入图片描述

解决方案

可见性:

在这里插入图片描述

有序性:

这个原则在加了volatile和锁的时候自动生效,也就是说解决了可见性和原子性,可见性顺带就解决了

在这里插入图片描述

原子性:

操作系统角度,监视器的名字是管程

解决了原子性问题,可见性和有序性都能解决

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

并发工具

CAS的方式会出现ABA问题,就是说是被修改了两次而又变回了原来的值,但是检查是没有变化的,对于引用对象就会出现问题,引用对象地址没变,但是引用的东西发生了变化

在这里插入图片描述

其他方案

ThreadLocal,线程是Key,值是线程的数据,每个线程取东西存东西,都是通过线程key区分,来隔离的

在这里插入图片描述

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • Java异常处理原理与用法实例分析

    Java异常处理原理与用法实例分析

    这篇文章主要介绍了Java异常处理原理与用法,结合实例形式分析了Java异常处理相关概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 利用Java Set 去除重复object的方法

    利用Java Set 去除重复object的方法

    下面小编就为大家带来一篇利用Java Set 去除重复object的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • java poi 读取单元格null或者空字符串方式

    java poi 读取单元格null或者空字符串方式

    这篇文章主要介绍了java poi 读取单元格null或者空字符串方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • SpringBoot自定义对象参数超详细介绍作用

    SpringBoot自定义对象参数超详细介绍作用

    SpringBoot通过自定义对象参数,可以实现自动类型转换与格式化,并可以级联封装,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • Struts2+uploadify多文件上传实例

    Struts2+uploadify多文件上传实例

    这篇文章主要为大家详细介绍了Struts2+uploadify多文件上传实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • JAVA swing布局管理器实例解析

    JAVA swing布局管理器实例解析

    这篇文章主要介绍了JAVA swing布局管理器实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Java 嵌入数据引擎从 SQLite 到 SPL详解

    Java 嵌入数据引擎从 SQLite 到 SPL详解

    这篇文章主要介绍了Java 嵌入数据引擎:从 SQLite 到 SPL,SQLite架构简单,其核心虽然是C语言开发的,但封装得比较好,对外呈现为一个小巧的Jar包,能方便地集成在Java应用中,本文给大家介绍的非常详细,需要的朋友参考下
    2022-07-07
  • 详细分析Java内存模型

    详细分析Java内存模型

    Java虚拟机规范中定义了Java内存模型(Java Memory Model,JMM),用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果,JMM规范了Java虚拟机与计算机内存是如何协同工作的,以及在必须时如何同步的访问共享变量
    2021-06-06
  • SpringBoot后端上传文件类型检测方式

    SpringBoot后端上传文件类型检测方式

    这篇文章主要介绍了SpringBoot后端上传文件类型检测方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java中GC与四种引用的关系详解

    Java中GC与四种引用的关系详解

    这篇文章主要介绍了Java中GC与四种引用的关系详解,Java 中一共有 4 种类型的引用 : StrongReference、 SoftReference、 WeakReference 以及 PhantomReference这 4 种类型的引用与 GC 有着密切的关系, 让我们逐一来看它们的定义和使用场景,需要的朋友可以参考下
    2023-09-09

最新评论