摘要:
原子操作 处理器自动保证基本内存操作的原子性,如对同一个缓存行里进行16/32/64位的操作是原子的。复杂的内存操作处理器不能自动保证其原子性,比如跨总线宽度,跨多个缓存行,跨页表的访问。 Atomic 在Atomic包里一共有12个类,四种原子更新方式,原子更新基本类型,原子更新数组,原子更新引用 阅读全文
摘要:
AQS > AbstractQueuedSynchronizer CAS > Compare and swap JUC > java.concurrent.util包的缩写 JIT > JUST IN TIME JVM即时编译 Heap 堆 Stack 栈 OOM > outOfMemory OOP 阅读全文
摘要:
1. 是不是所有的对象和数组都会分配在堆内存分配空间? -- 不一定 如果开启逃逸分析,可能会直接分配到栈空间。 阅读全文
摘要:
阅读全文
摘要:
JUC编程Tools 包含五个工具类: Excutors、Semaphore、Exchanger、CyclicBarrier、CountDownLatch Semaphore 信号量的意思,控制访问特定资源的线程数目。 用于流量控制,限制最大的并发的并发访问数。公共资源池定义 X 个permit 共 阅读全文
摘要:
1. 逃逸分析(jdk 1.7以后默认开启逃逸分析) 关闭逃逸分析 VM运行参数:-Xmx4G -Xms4G -XX:-DoEscapeAnalysis -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError 开启逃逸分析 VM运行参数:-Xmx4G 阅读全文
摘要:
第一部分: synchronized 临界资源 在多线程并发过程中,有可能会出现多个线程同时出现访问同一个共享,可变资源的情况。这个资源可能是变量、文件、对象等。 共享:资源可以由多个线程同时访问 可变:资源可以在其生命周期内修改 引发的问题: 由于线程的过程是不可控的,所以需要采用同步机制来对协同 阅读全文
摘要:
CPU内部结构划分控制单元运算单元存储单元 计算机多硬件多CPU结构: CPU缓存一致性原则 JMM同步八种操作介绍:(1)lock(锁定):作用于主内存的变量,把一个变量标记为一条线程独占状态 (2)unlock(解锁):作用于主内存的变量,把一个处于锁定状态的变量释放出来,释放后的 变量才可以被 阅读全文