关于高并发,我想告诉你这些!

高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。在过往的面试中,如果候选人做过高并发的项目,我通...

Read More


HashMap源码注解 之 静态工具方法hash()、tableSizeFor()

HashMap#hash()为什么要有HashMap的hash()方法,难道不能直接使用KV中K原有的hash值吗?在HashMap的put、get操作时为什么不能直接使用K中原有的hash值。 /** * Computes key.ha...

Read More


让线程按顺序执行8种方法

前言本文使用了7中方法实现在多线程中让线程按顺序运行的方法,涉及到多线程中许多常用的方法,不止为了知道如何让线程按顺序运行,更是让读者对多线程的使用有更深刻的了解。 使用的方法如下:[1] 使用线程的join方法[2] 使用主线程的join方法[3] 使...

Read More


基于 Redis 的分布式锁 Redlock

怎么在单节点上实现分布式锁说道Redis分布式锁大部分人都会想到:setnx+lua,或者知道 set key value px milliseconds nx 。后一种方式的核心实现命令如下:该命令仅当 Key 不存在时(NX保证)set 值,并且设置...

Read More


ByteBuffer 与 DirectByteBuffer 在堆外内存的应用

前置知识堆外内存堆外内存是相对于堆内内存的一个概念。堆内内存是由 JVM 所管控的 Java 进程内存,我们平时在 Java 中创建的对象都处于堆内内存中,并且它们遵循 JVM 的内存管理机制,JVM 会采用垃圾回收机制统一管理它们的内存。那么堆外内存就...

Read More