并发编程中主要的三个问题:安全性问题,活跃性问题和性能问题. 安全性问题 平时总是听到这个方法不是线程安全的,这个类不是线程安全的.那么这个安全...
在破坏占用且等待条件的时候,如果转出账本和转入账本不满足同时在文件架上这个条件,就用死循环的方式来循环等待 如果apply()操作耗时非常短,而...
前面讲到使用Account.class作为互斥锁,来解决银行业务里面的转账问题,虽然这个方法不存在并发问题,但是所有账户的转账操作都是串行的.例...
受保护资源和锁之间合理的关联关系应该是 N:1 的关系,也就是说可以用一把锁来保护多个资源,但是不能用多把锁来保护一个资源. 当我们要保护多个资...
一个或多个操作在CPU执行的过程中不被中断的特性.称为"原子性".理解这个特性有助于你分析并发编程 Bug 出现的原因,例如利用它可以分析出 l...
什么是java内存模型? 导致可见性的原因是缓存,导致有序性的原因是编译优化,那解决可见性,有序性最直接的办法就是禁用缓存和编译优化,但是这样问...
我们的CPU,内存,I/O设备都在不断迭代,不断朝着更快的方向努力,但是,在这个快速发展的过程中,有一个核心矛盾一直存在,就是这三者的速度差异....
一.java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:"Java虚拟机具有一个堆,堆是运行时数据区域,所有实例...
Tomcat 总体架构 我们知道如果要设计一个系统,首先是要了解需求,我们已经了解了Tomcat要实现2个核心功能: 处理Socket连接,负责...