摘要:
1、强引用(默认使用) //强引用 public class StrongReferenceDemo { public static void main(String[] args) { Object obj1 = new Object();//这样定义的,默认就是强引用 Object obj2 = 阅读全文
摘要:
int corePoolSize:线程池中常驻的核心线程数; int maximumPoolSize:线程池中能够容纳同时执行的最大线程数,此值必须大于等于1; long keepAliveTime:多余的空闲线程的存活时间,当前线程池数量超过corePoolSize的时候, 当空闲时间达到keep 阅读全文
摘要:
2、线程池的使用方式 常见三种方式(重要) Executors.newFixedThreadPool(int);//创建一个线程池,该线程池重用固定数量的从共享无界队列中运行的线程。 Executors.newSingleThreadExecutor();//创建一个使用从无界队列运行的单个工作线程 阅读全文
摘要:
import java.util.concurrent.Callable; import java.util.concurrent.FutureTask; class MyThread3 implements Callable<Integer>{ @Override public Integer c 阅读全文
摘要:
1、原始构成 synchronized是关键字,属于JVM层面; monitorenter(底层是通过monitor对象完成,其实wait / notify等方法也依赖 monitor对象,只有在同步块或方法中才能调用wait / notify等方法); monitorexit Lock是具体的类( 阅读全文
摘要:
ArrayBlockingQueue:由数组结构组成的有界阻塞队列; LinkedBlockingQueue:由链表结构组成的有界阻塞队列(但大小默认值为:Integer.MAX_VALUE); PriorityBlockingQueue:支持优先级排序的无界阻塞队列; DelayQueue:使用优 阅读全文
摘要:
枚举类 @Getter public enum CountryEnum { ONE(1, "燕"), TWO(2,"赵"), THREE(3,"韩"), FOUR(4,"魏"), FIVE(5,"齐"), SIX(6,"楚"); private Integer code; private Strin 阅读全文
摘要:
1、公平锁和非公平锁 公平锁:是指多个线程按照申请锁的顺序来获取锁,类似于排队打饭,先来后到; 非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁,在高并发的情况下,有可能或造成优先级反转或者饥饿的情况; 公平/非公平 在并发包ReentrantLo 阅读全文
摘要:
1、ArrayList /** * 集合类不安全问题 * 1、故障现象: * java.util.ConcurrentModificationException(并发修改异常) * 2、解决方案 * 3.1、new Vector<>(); * 3.2、Collections.synchronized 阅读全文
摘要:
1、CAS: > compareAndSet(期望值,修改值) 比较并交换; /** * CAS: > compareAndSet() * 比较并交换 */ public class CASDemo { public static void main(String[] args) { AtomicI 阅读全文