麦奇
  • 首页
  • 归档
  • 分类
  • 标签
  • 友链
  • 音乐
  • RSS
  • 关于
  •   
  •   
Linux篇-select/poll/epoll源码分析

Linux篇-select/poll/epoll源码分析

I/O复用使得程序同时监听多个文件描述符 通常网络程序在以下情况需要使用到I/O复用 客户端程序(用户进程)要同时处理多个socket 客户端程序要同时处理用户输入和网络连接 TCP服务要同时处理监听socket和连接socket(这是I/O复用最多的场景) 服务器需要同时处理TCP请求和UDP请求 服务器要同时监听多个端口,或者处理多种服务 Linux下实现I/O复用的系统调用主
2020-12-03
基建相关 > 服务器篇 > Linux服务器
#I/O
Linux篇-select/poll/epoll详解

Linux篇-select/poll/epoll详解

用户态和内核态 首先,我们明确一个概念,Linux所谓的用户态和内核态,本质是对CPU提供的功能的一层封装抽象。现代CPU,其设计目标主要是为了完美高效的实现一个多任务系统,多任务系统的三个核心特征是:权限分级、数据隔离和任务切换。以X86_64架构为例,权限分级通过CPU的多模式机制和分段机制实现,数据隔离通过分页机制实现,任务切换通过中断机制和任务机制(TR/TSS)实现。 然后,给内
2020-12-02
基建相关 > 服务器篇 > Linux服务器
#I/O
算法篇-Dijkstra算法

算法篇-Dijkstra算法

迪克斯特拉算法迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。 迪杰斯特拉算法主要特点是 从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,更新始点到其距离,直到扩展到终点为止。 算法思想按路径长度递增次序产生算法: 把顶点集合
2020-12-02
基础算法 > 算法笔记
#最短路径
Java篇-Servlet生命周期

Java篇-Servlet生命周期

Servlet 生命周期Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程: Servlet 初始化后调用 init () 方法。 Servlet 调用 service() 方法来处理客户端的请求。 Servlet 销毁前调用 destroy() 方法。 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。 现在让我们详细讨论生命周期的
2020-11-30
编程语言 > Java > 源码分析
#Servlet
算法篇-BFPRT算法

算法篇-BFPRT算法

背景介绍 中位数的中位数算法 在一堆数中求其前 k 大或前 k 小的问题,简称 TOP-K 问题。而目前解决 TOP-K 问题最有效的算法即是 BFPRT 算法,又称为中位数的中位数算法,该算法由 Blum、Floyd、Pratt、Rivest、Tarjan 提出,最坏时间复杂度为 O(n)。 在首次接触 TOP-K 问题时,我们的第一反应就是可以先对所有数据进行一次排序,然后取其前 k
2020-11-25
基础算法 > 算法笔记
#算法
刷题笔记-位运算/进制转换

刷题笔记-位运算/进制转换

位移运算 功能 示例 位运算 判断n是否为2的幂次方 1101 0101 & 1101 0100 = n > 0 && (n & (n - 1)) == 0;n > 0 && (n & -n) == n; 进制转换十进制转 x 进制 短除法:用十进制的数除以 x 取余,最后从下往上去余数 1 x进制转
2020-11-19
基础算法 > 刷题记录
Linux篇-文本三剑客grep/sed/awk

Linux篇-文本三剑客grep/sed/awk

背景在三个工具是我们在linux下处理文本比较常用的工具,grep主打查找功能,sed主要是编辑,awk主要是分割处理。 grepgrep是一个最初用于Unix操作系统的命令行工具。在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本。grep原先是ed下的一个应用程序,名称来自于g/re/p(globally search a r
2020-10-10
基建相关 > 服务器篇 > 开发工具
刷题笔记-二分搜索

刷题笔记-二分搜索

二分查找模板12345678910111213141516class BinarySearch{ public int[] binarySearch(int[] nums,int target){ int left = 0,right = ...; while (...){ int mid = left+(right
2020-09-01
基础算法 > 刷题记录
数据库篇-MongoDB分布式文档存储数据库

数据库篇-MongoDB分布式文档存储数据库

简介MongoDB 是一个基于分布式文件存储的数据库。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 概念MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为 WEB 应用提供可扩展的高性能数据
2020-08-26
基建相关 > 数据库组 > MongoDB
算法笔记-图论类型

算法笔记-图论类型

理论知识 有向图/无向图 在图中,若节点的边用箭头标明了边是有方向性的,则称这样的图为有向图,否则称为无向图。 出入度 在有向图中边的箭头指入的节点数量则为该节点的入度,从该节点指出的边则称为出度。 权重 图中边所标记的数 图的遍历 和多叉树的遍历很相似 bfs/dfs 1234567891011121314151617181920212223242526272829
2020-08-20
基础算法 > 刷题记录
1…1213141516…18

搜索

Copyright © 麦奇 Powered by Hexo and Fluid core on github page
总访问量 次 总访客数 人
桂ICP备2020009931号-1 | police-icon 桂公网安备2020009931号