SF
敲开互联网四大之门
敲开互联网四大之门
注册登录
关注博客
注册登录
主页
关于
RSS
【Java并发编程实战】(五):死锁问题
少侠露飞
2021-04-01
阅读 7 分钟
2.2k
在上一篇文章中,我们用Account.class作为互斥锁,来解决银行业务里面的转账问题,虽然这个方案不存在并发问题,但是所有账户的转账操作都是串行的,例如账户A 转账户B、账户C 转账户D这两个转账操作现实世界里是可以并行的,但是在这个方案里却被串行化了,这样的话,性能太差。
【Java并发编程实战】(四):互斥锁——解决原子问题和保护多个资源
少侠露飞
2021-04-01
阅读 9 分钟
2.4k
在第一篇文章中我们提到,一个或者多个操作在CPU执行的过程中不被中断的特性,称为“原子性”。理解这个特性有助于你分析并发编程Bug出现的原因,例如利用它可以分析出long型变量在32位机器上读写可能出现的诡异Bug,明明已经把变量成功写入内存,重新读出来却不是自己写入的。
【Java并发编程实战】(三):Java内存模型——看Java如何解决可见性和有序性问题
少侠露飞
2021-04-01
阅读 5 分钟
1.7k
上一节我们讲到在并发场景中,因可见性、原子性、有序性导致的问题常常会违背我们的直觉,从而成为并发编程的Bug之源。这三者在编程领域属于共性问题,所有的编程语言都会遇到,Java在诞生之初就支持多线程,自然也有针对这三者的技术方案,而且在编程语言领域处于领先地位。理解Java解决并发问题的解决方案,对于理解其...