定时器都知道吧?个人认为是linux最核心的功能之一了!比如线程sleep(5000),5s后再唤醒执行,cpu是怎么知道5s的时间到了?还有nginx这种反向代理每隔一段时间都要检测客户端的是否还在,如果掉线了就没必要再分配资源维护连接关系啦。那么间隔固定时间检测心跳的定时机制是怎么实现 ...
红黑树是一种非常重要的数据结构,有比较明显的两个特点: 插入 删除 查找的时间复杂度接近O logN ,N是节点个数,明显比链表快 是一种性能非常稳定的二叉树 中序遍历的结果是从小到大排好序的 基于以上两个特点,红黑树比较适合的应用场景: 需要动态插入 删除 查找的场景,包括但不限于: 某些数据库的增删改查,比如select from xxx where 这类条件检索 linux内核中进程通过红 ...
2022-01-13 21:42 0 1471 推荐指数:
定时器都知道吧?个人认为是linux最核心的功能之一了!比如线程sleep(5000),5s后再唤醒执行,cpu是怎么知道5s的时间到了?还有nginx这种反向代理每隔一段时间都要检测客户端的是否还在,如果掉线了就没必要再分配资源维护连接关系啦。那么间隔固定时间检测心跳的定时机制是怎么实现 ...
1、在现代的操作系统中,进程调度是最核心的功能之一;linux 0.11的调度算法简单粗暴:遍历task_struct数组,找到时间片counter最大的进程执行;显然这种策略已经不适合越来越复杂的业务场景需求了,所以后来逐步增加了多种调度策略,目前最广为人知的调度策略有5种:cfs、idle ...
1、简单介绍一下epoll的出现的背景:这里以java代码为例,最原始的server代码如下: 单线程中,一个死循环不停地接受客户端的连接和数据;上述代码有两个“卡点”:第一个 ...
1、linux内核中利用红黑树增删改查快速、稳定的特性来管理的还有另一个非常重要的功能:虚拟内存管理!前面介绍了buddy和slab算法是用来管理物理页面的。由于早期物理页面远比虚拟页面小很多,而且只需要分配和回收合并,所以也没用树形结构来组织,简单粗暴地用链表来管理!但是虚拟内存不一样 ...
1 红黑树的定义 (1)每个节点或者为黑色,或者为红色。 (2)根必须为黑色。 (3)每个叶子节点(不包含关键字的节点)都是黑色。 (4)如果有一个节点是红色,那么它的两个儿子都是黑色。 (5)对于每个节点,从该节点出发到其子孙节点的所有路径上包含 ...
子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替 ...
前言 最近断断续续花了一个礼拜的时间去看红黑树算法,关于此算法还是比较难,因为涉及到诸多场景要考虑,同时接下来我们要讲解的HashMap、TreeMap等原理都涉及到红黑树算法,所以我们不得不了解其原理,关于一些基础知识这里不再讲解,本文参考博文:《https://www.cnblogs.com ...