并发问题的根源到底是什么?

c8b7993d8c0b9d7fa23ba23dd4462c6f.png

若有收获,请记得分享和转发哦

并发编程是 java 高级程序员的必备的基础技能之一。但是想要写好并发程序并非易事。

那究竟是什么原因导致大把的“格子衫”朋友无法写出优质和性能稳定的并发程序呢?根本原因就是大家对并发编程的核心理论的模糊和不理解。想要运用好一项技术。理论知识和核心概念是一定要理解透彻的。

今天我们就来一起看下并发编程三大核心基础理论:原子性、可见性、有序性

1、原子性

先来看下什么叫原子性

第一种理解:原子(atomic)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意 为“不可被中断的一个或一系列操作”

第二种理解:原子性,即一个操作或多个操作,要么全部执行并且在执行的过程中不被打断,要么全部不执行。(提供了互斥访问,在同一时刻只有一个线程进行访问)

原子,在物理学中定义是组成物体的不可分割的最小的单位。在 java 并发编程中我们可以将其理解为:一组要么成功要么失败的操作

afffad15a954f4f16d5a36164a53e169.png

f8b5b8abe50d9544225134a9e3369375.png

197ee800ddf0d382ffe6a9310ca58c40.png

1b5532e8aec4a49f924506163efaea71.png

fa904cb0518ada7e8062214810580007.png

a44a2c1237365226cc09d3abd574455f.png

68d3598b5b38f1831eec4983ec867aa7.png

fe3e2489512107882e0a304cb5206488.png

34fe1a958249ae729fd8413574d09167.png

a5232a9c5a79e5446d84f05d360a4bbb.png

46b9f37975af73739e191e2e102bb41e.png

dcf8531e1c6ad7bd4ff68814cdac010b.png

2bedd676cba0d20adc51ab161a4dea8c.png

4、本文小结

并发编程的学习和使用并非一朝一夕的事情,也并非会几个理论就能写好优质的并发程序。这需要长时间的实践和总结。好的代码很少是写出来的,都是迭代和优化的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值