求仁得仁
06
13
Java并发-JMM Java并发-JMM
并发三大特性 可见性:volatile;内存屏障;synchronized;Lock;final 有序性(指令重排序):volatile;内存屏障;synchronized;Lock 原子性:synchronized;Lock;CAS
2024-06-13
13
Java并发-happens-before Java并发-happens-before
as-if-serial:不管怎么重排序(编译器和处理器为了提高并行度),(单线程)程序的执行结果不能被改变。编译器、runtime和处理器都必须遵守as-if-serial语义 为了遵守as-if-serial语义,编译器和处理器不会
2024-06-13
13
Java并发-Future Java并发-Future
FutureTask: 存储任务的处理结果,更新任务的状态 既可以被当做Runnable来执行,也可以被当做Future来获取Callable的返回结果 Future: cancel isCancelled isDone get C
2024-06-13
13
Java并发-ForkJoin Java并发-ForkJoin
线程数计算方法:线程数 = CPU 核心数 *(1+平均等待时间/平均工作时间) CPU密集型任务:线程数为 CPU 核心数的 1~2 倍 IO密集型任务:线程数一般
2024-06-13
13
Java并发-Disruptor Java并发-Disruptor
Disruptor 通过以下设计来解决队列速度慢的问题 环形数组结构:为了避免垃圾回收,采用数组而非链表。同时,数组对处理器的缓存机制更加友好(空间局部性原理) 元素位置定位:数组长度2^n,通过位运算,加快定位的速度。下标采取递增的形
2024-06-13
13
Java并发-CAS & Atomic Java并发-CAS & Atomic
CAS Atomic LongAdder CAS(Compare And Swap,比较并交换):针对一个变量,首先比较它的内存值与某个期望值是否相同,如果相同,就给它赋一个新值 一个不可分割的原子操作,并且其
2024-06-13
13
Java并发-BlockingQueue Java并发-BlockingQueue
BlockingQueue和JDK集合包中的Queue接口兼容,同时在其基础上增加了阻塞功能 offer(E e):如果队列没满,返回true,如果队列已满,返回false(不阻塞) offer(E e, 
2024-06-13
13
Java并发-AQS Java并发-AQS
AQS具备的特性:阻塞等待队列;共享/独占;公平/非公平;可重入;允许中断 AQS内部维护属性volatile int state:state 表示资源的可用状态 State三种访问方式:getState()&nbs
2024-06-13
13
13
Java并发-线程 Java并发-线程
线程共有六种状态:NEW(初始化状态);RUNNABLE(可运行状态+运行状态);BLOCKED(阻塞状态);WAITING(无时限等待);TIMED_WAITING(有时限等待);TERMINATED(终止状态) 中断机制:中断
2024-06-13
13
Java并发-设计模式 Java并发-设计模式
终止线程的设计模式 Two-phase Termination(两阶段终止)模式:终止标志位 避免共享的设计模式 Immutability模式:只读 Copy-on-Write模式:写时复制 Thread-Specifi
2024-06-13
13
13
ElasticSearch-ELK ElasticSearch-ELK
Logstash Logstash 配置文件结构 Logstash 导入数据到 ES 同步数据库数据到 ES FileBeat ELK(采集 Tomcat 服务器日志) 使用FileBeats将日志发送到Logstash Logs
2024-06-13
13
13
13
ElasticSearch-数据建模 ElasticSearch-数据建模
处理关联关系 Object: 优先考虑反范式(Denormalization) Nested: 当数据包含多数值对象,同时有查询需求 Child/Parent:关联文档更新非常频繁时 避免过多字段 一个文档中,
2024-06-13
13
13
5 / 7