让线程按顺序执行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


简单的 LRU Cache 设计与实现

介绍LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:public cl...

Read More


二叉树遍历的实现方式

介绍所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问 题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。二叉树的遍历分为:前序遍历、中序遍历和后序遍历。实...

Read More