发布于 2021-05-31
摘要
修复死锁策略 避免策略 银行转账 我们并不在乎获取锁的顺序,所以要避免相反的获取锁的顺序即可避免死锁,将transferMoney …
修复死锁策略 避免策略 银行转账 我们并不在乎获取锁的顺序,所以要避免相反的获取锁的顺序即可避免死锁,将transferMoney …
定位死锁 jstack 使用JDK自带命令jstack 进程号对某个Java进程的线程栈进行分析(使用jps命令可查看Java程序 …
死锁代码 最简单死锁情况 public static void main(String[] args) throws Interr …
原子性 原子性:一系列操作,要么全部执行成功,要么全部不执行,不会出现执行一半的情况,是不可分隔的 比如i++操作其实就是:取出i …
可见性 高速缓存容量比主存内存小,但是速度快,所以为了提高执行效率,CPU与主存之间就多了缓存层(不同的CPU有不同的缓存层数), …
重排序 线程内部两行代码时,执行顺序和源代码中的书写顺序不一致,就是发生了重排序,重排序现象是由以下结果导致: 编译器优化:包括J …
Java内存模型 Java内存交互模型是一组内存操作规范,需要JVM实现来遵守,以便开发者可利用这些规范,更方便的开发多线程程序; …
多线程带来的问题 线程安全 当多线程访问一个对象时,若无需考虑下面几点(也就是无需做任何额外考虑,就想单线程那样),调用该对象的行 …
线程异常处理 子线程中捕获异常 public static void main(String[] args) { new Thre …
线程相关属性 线程ID 每个线程都有唯一的ID,线程ID是没有setter方法的,也就是不能修改的,这是因为ID是给JVM使用的 …