java
admin_lxs
这个作者很懒,什么都没留下…
展开
-
02.java内存模型:java如何解决可见性、有序性问题
java内存模型:java内存模型这个概念,在职场的很多面试中都会考核到,是一个热门的考点,也是一个人并发水平的具体体现。原因是当并发程序出问题时,需要一行一行的检查代码,这个时候只有掌握Java内存模型,才能慧眼如炬地发现问题。什么是Java内存模型?我们已经知道,导致可见性的原因是缓存问题,导致有序性的原因编译优化,那解决可见性、有序性最直接的的办法就是禁用缓存和编译优化,但是这样...原创 2019-04-15 18:55:14 · 146 阅读 · 0 评论 -
03.死锁,以及解决方案
目录向现实世界要答案没有免费的午餐如何预防死锁现实世界中的转账是支持并发的,而且绝对是真实的并行,银行所有的窗口都可以做转账操作。只要我们能仿照现实世界做转账操作,串行问题就解决了。我们试想,在古代,没有信息化,账户的存在形式就是一个账本,而且每个账户都有一个账本,这些账本都统一放在文件架上。银行柜员在做转账的时候,要去文件架上把转出账本和转入账本都拿到,然后再转账。但是这个柜...原创 2019-04-16 14:44:56 · 351 阅读 · 0 评论 -
01.并发编程中可见性、原子性、有序性问题
并发编程幕后的故事 这些年,我们的cpu、内存、I/O设备都在不断迭代,不断朝着更快的方向努力。但是,在这个快速发展的过程中,有一个核心矛盾一直存在,就是这三者的速度差异。CPU和内存的速度差异可以形象地描述为:CPU是天上一天,内存是地上一年(假设CPU执行一条普通指令需要一天,那么CPU读写内存得等待一年的时间)。内存和I/O设备的速度差异就更大了,内存是天上一天,I/O设备是...原创 2019-04-15 11:25:50 · 231 阅读 · 0 评论