随笔分类 - Java
摘要:Java多线程之内存可见性和原子性操作 一 synchronize Volatile实现可见性 通过内存屏障和禁止指令重排序实现可见性 写操作的时候,会把内容强制刷新到主内存中去 读操作的时候,会强制吧缓冲区的内容清掉,然后从主内存读取最新值。 在java中一共有八条操作指令,store和load是
阅读全文
摘要:前提知识 首先要知道哈希表, 哈希表(Hash table,也叫散列表)哈希表的思路:当我知道key值以后,我就可以直接计算出这个元素在集合中的位置,根本不需要一次又一次的查找! 正文 (Lrucache用到了LinkedHashMap) 像数组,栈,链表,队这种,都是线性结构,比如用到诸如Obje
阅读全文
摘要:先看一个普通的例子 package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBUtil { static String i
阅读全文
摘要:可见性的理论 就说这个线程是可见的 什么是线程的工作内存 工作内存是java内存模型提出的概念 JMM 变量是指共享变量 所有的变量都存储在主内存中 每个线程都有自己独立的工作内存,里面保存该线程使用到的变量的副本(主内存中该变量的一份拷贝) 变量的源保存在哪里呢:主内存 工作内存和主内存的关系 下
阅读全文
摘要:synchronized关键字修饰的方法实现同步 1.在方法级别 public synchronized …. 内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。 注: synchronized关键字也可以修饰静态方法,此时如果调用该静态方法,将会锁住整个类 2.同步代码块
阅读全文

浙公网安备 33010602011771号