1. 原子性

即保证操作不可中断,只能执行或者不能执行

在 java 中只有简单的赋值和读取是原子性操作,而对于复杂业务而言,这需要使用 synchronized 和 Lock
来实现,因为同一时段只能保证一个线程操作,就不会有原子性问题

阅读全文 »

1. CAS 操作

核心工程

​ unSafe 类

缺陷

  1. 长时间空转,给 cpu 带来巨大开销
  2. 只能保证一个共享变量原子操作
  3. ABA 问题
阅读全文 »

1. Spring framework

1
2
3
4
5
6
AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext(AppConfig.class);
// 获取 Bean 对象
UserService userService=context.getBean("userService");
// 创建对象
UserService userService=new UserService();

​ context 容器中去获取对象

  1. 不推荐使用 - 数据量巨大

    newCacheThreadPool、newFixedThreadPool、newSingleThreadPool

    容易发生 OOM,缓存线程池队列有存活时间,但无线程数量限制,容易 cpu100%,其他两个都是无界队列

阅读全文 »

1. 索引

1.1 索引结构

1.1.1 二叉树

​ 有序列表无用

1.1.2 红黑树

​ 数据量大时 树高不可控

阅读全文 »