发布于 2021-06-12
摘要
并发锁 锁是用于对于共享资源访问控制的工具,常见的有Lock和synchronized,都是可以达到线程安全的目的,但是使用上和功 …
并发锁 锁是用于对于共享资源访问控制的工具,常见的有Lock和synchronized,都是可以达到线程安全的目的,但是使用上和功 …
ThreadLoacl 应用场景 线程单例:每个线程需要独享单个对象,通常是工具类,比如SimpleDateFormat和Rand …
Callable 对比Runnable 相对于Runnable弥补了如下几点缺陷,之所以设计成这样是因为调用run()方法的类是J …
线程池 由于线程的创建与销毁性能开销较大,过多的线程会占用大量内存,所以需要**控制线程总量,线程统一管理,复用线程,**从而提高 …
其他活跃性问题 活锁 当多个线程或进程互相谦让资源,同时主动释放让对方先执行,导致所有进程或线程依然在运行,但程序却得不到进展,因 …
修复死锁策略 避免策略 银行转账 我们并不在乎获取锁的顺序,所以要避免相反的获取锁的顺序即可避免死锁,将transferMoney …
定位死锁 jstack 使用JDK自带命令jstack 进程号对某个Java进程的线程栈进行分析(使用jps命令可查看Java程序 …
死锁代码 最简单死锁情况 public static void main(String[] args) throws Interr …
原子性 原子性:一系列操作,要么全部执行成功,要么全部不执行,不会出现执行一半的情况,是不可分隔的 比如i++操作其实就是:取出i …
可见性 高速缓存容量比主存内存小,但是速度快,所以为了提高执行效率,CPU与主存之间就多了缓存层(不同的CPU有不同的缓存层数), …