红黑树和b+树
摘要:二叉搜索树 满足以下条件: 对于根节点,左子树中所有节点的值 < 根节点的值 < 右子树中所有节点的值。 任意节点的左、右子树也是二叉搜索树,即同样满足条件 1. 这是一个正常的,没有碰到极端情况的二叉搜索树。 如果数据是有序的或者在删除,插入操作下,那么可能会退化成一条链。严重影响性能。 平衡二叉
阅读全文
posted @
2025-03-16 15:42
嗯嗯好傅
阅读(0)
推荐(0) 编辑
赞美Syscall
摘要:知道程序员在编写程序时直接和硬件打交道是一件非常麻烦的事,同时不受保障的程序直接运行在硬件上如果出错可能造成计算机宕机,于是可以编写一个应用程序驻留在计算机上管理硬件资源为上层应用提供系统调用(syscall),不允许上层应用随意访问硬件资源,这就是 内核(内核的健壮性往往比其它应用程序要高) Sy
阅读全文
posted @
2025-03-14 10:45
嗯嗯好傅
阅读(10)
推荐(0) 编辑
Java内存模型
摘要:现代编程离不开并发,但并发效率提升的同时也带来了一些问题,比如程序奇怪的执行顺序,诡异的行为,Java 为了解决这个问题提出了一套内存模型 (JMM),同时我们需要注意的是,我们真正要了解的是什么,是 Java语言规范关于 JMM 定义的规则,还是 JVM 对于 JMM 的的具体实现,本文主要根据
阅读全文
posted @
2025-03-12 15:05
嗯嗯好傅
阅读(5)
推荐(0) 编辑
为什么TCP三次握手?
摘要:是我们需要,才有了三次握手 Sequence numbers 和 Acknowledgments Transmission is made reliable via the use of sequence numbers and acknowledgments. Conceptually, each
阅读全文
posted @
2025-03-08 22:56
嗯嗯好傅
阅读(6)
推荐(0) 编辑
事务和锁的那些事
摘要:事务对于数据库而言,是对数据的一系列操作,比如增删改查,但事务具有 ACID 的特性,原子性,持久性,一致性,隔离性,是为了保证数据库的可靠和数据的一致。需要注意的是我们借助各种方法来保证事务的特性,比如锁就是实现事务隔离性的手段。 在阅读其它博客时有一点需要注意,MySQL的体系结构可以分为两层,
阅读全文
posted @
2025-03-07 20:27
嗯嗯好傅
阅读(8)
推荐(0) 编辑
分布式锁
摘要:和在单机多线程中的锁的目的相同,就是在对共享资源进行操作时要保证正确性,在这里多线程成了多个客户端,需要一些共享的资源(可以被所有客户端看到的 flag )如: 数据库,Redis, ZooKeeper等,结合其特性,来实现分布式锁。 注:分布式锁不可能百分百安全 常见的分布式锁实现方案 以下均是借
阅读全文
posted @
2025-03-06 16:45
嗯嗯好傅
阅读(2)
推荐(0) 编辑
select,poll,epoll
摘要:阻塞模式 发生I/O系统调用如果阻塞,进程会被挂起。 下面的各种模式都是为了解决阻塞模式带来的CPU消耗等问题 非阻塞模式 发生I/O系统调用如果阻塞,返回 -1 并 errno == EWOULDBLOCK. 根据 Everything is a file 的unix的设计哲学,通过 fcntl对
阅读全文
posted @
2025-03-03 23:27
嗯嗯好傅
阅读(2)
推荐(0) 编辑
ThreadLocal的内存泄露
摘要:Java中的对象实例存储在堆里,引用就是为了找到对象实例的指针。GC会根据对象实例不同的引用来进行垃圾回收。 强引用 是默认的,基本的引用,最为常见,比如 Object obj = new Object(); // obj是强引用 永远不会被回收 下面三种引用方式是后来引入的,允许开发者更灵活地控制
阅读全文
posted @
2025-03-02 16:34
嗯嗯好傅
阅读(1)
推荐(0) 编辑
Java中的ThreadLocal
摘要:什么是ThreadLocal,看作者的这一段话 * This class provides thread-local variables. These variables differ from * their normal counterparts in that each thread that
阅读全文
posted @
2025-03-01 17:25
嗯嗯好傅
阅读(1)
推荐(0) 编辑