05 2024 档案
摘要:JUC 源码解析:lock锁与synchronized锁的区别 本文使用 jdk1.8 Lock 锁的使用注意事项 要在 finally 块中释放锁。保障锁一定能被释放 不要把加锁代码写进 try 块里。因为我们可能会自己实现Lock接口,在一些实现中,如果获取锁时发生了异常,可能导致锁被无故释放
阅读全文
摘要:JUC源码解析:深入理解 volatile volatile 的定义 volatile 的作用: 保证可见性 禁止指令重排序 volatile 可以被看作是轻量版的 synchronized,volatile 保证了多线程中共享变量的“可见性”,就是说,当volatile 变量的值被修改时,其他线程
阅读全文
摘要:JUC源码解析:深入解读偏向锁 本文使用 jdk8 几种锁状态介绍 先介绍一下锁状态吧 看偏向锁这一栏, 它的内存存储了 线程ID 和 Epoch , 这一点尤为关键, 意味着偏向锁没有内存可以存储对象头的 hashCode, 而其他锁是有地方存的.。也就意味着,,当锁对象被隐式(父类)或显试调用了
阅读全文
摘要:拉取并打开容器: 把数据挂载到磁盘上,这样好些,换个容器数据也一直都在 docker run \ --name mysql \ -d \ -p 3306:3306 \ --restart unless-stopped \ -v /mydata/mysql/log:/var/log/mysql \ -
阅读全文