09 2021 档案
摘要:公平锁和非公平锁 //默认是非公平锁,可以设置为公平锁 Lock lock = new ReentrantLock(); public ReentrantLock() { sync = new NonfairSync(); } 公平锁:多个线程按照申请的顺序获取锁 非公平锁:多个线程获取锁的顺序并不
阅读全文
摘要:集合类不安全的问题 List<String> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { new Thread(()->{ //多个线程修改同一个资源list list.add(UUID.randomUUID().toString
阅读全文
摘要:什么是CAS 比较并交换 线程从主物理内存中拿到原始的值,经过一系列操作在准备将修改后的数据重新写回到主物理内存之前,先拿到主物理内存的真实值和期望值进行比较,如果数据没有被其他的线程修改,就可以修改数据并写回到主物理内存中,否则放弃当前的写操作,重新从主物理内存中拿到新的值重新进行比较交换操作 /
阅读全文
摘要:volatile 轻量级的同步机制 保证可见性 不保证原子性 禁止指令重排 JMM 内存模型 JVM运行程序的实体是线程,每个线程创建,JVM实体都会为其创建一个工作内存(栈空间),工作内存是每个线程的私有的数据区域,而java内存模型中规定所有的变量都存储在主内存中,主内存是共享的内存区域,所有线
阅读全文
摘要:方式一 public static void main(String[] args) { AutoGenerator mpg = new AutoGenerator(); // 全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath
阅读全文
摘要:git 配置 git config --global user.name="" #配置全局的用户名 git congig --global user.email="" #配置全局的邮箱 cd ~ #切换到用户目录 ssh-keygen -t rsa -C 邮箱 #生成SSH秘钥 生成的.pub文件的
阅读全文
摘要:top load average(一分钟,五分钟,十分钟) 三个数的平均数>60, 表示系统的负载压力大 uptime vmstat -n 2 3 每2秒采集一次,总共采集三次 procs r: 运行和等待cpu时间片的进程数,原则上1核的cpu运行队列不要超过2,整个系统的运行队列不能超过总核数的
阅读全文
摘要:springboot starts:>=5000 点赞数超过5000 springboot forks:>=500 springboot forks:100..200, stars:80..100 seckill in:name,readme,description awesome redis 学习
阅读全文
摘要:LockSupport是优化版的等待和唤醒机制 wait 和 notify 需要和 synchronized 结合使用 await 和 signal 需要和 Lock 结合使用 它们都必须是先等待再唤醒 LockSupport可以单独使用, 直接唤醒指定的线程,而且跟顺序无关,可以先 unpart
阅读全文
摘要:public class LruCached<K, V> { class Node<K, V> { K key; V value; Node<K, V> pre; Node<K, V> next; public Node() { this.next = this.pre = null; } publ
阅读全文

浙公网安备 33010602011771号