• 几种常见的树结构

    几种常见的树结构二叉搜索树(Binary Search Tree)构建规则当前节点的左子树一定小于该节点,而右子树一定大于该节点 优势会带来极高的查找效率,时间复杂度为O(logn),因为每次查找都是两个节点选一个,可以看作是一种二分查找,而二分查找的时间复杂度就是O(logn) 缺点但是有些情况下,比如插入的值总是大于或小于前一个值,会导致树的高度过深,二分查找的时间效率就会退化成线性查找...
  • WebSocket协议详解

    WebSocket协议详解WebSocket是一种在单个TCP连接上提供全双工通信的网络协议,允许服务器主动向客户端推送数据。下面详细介绍WebSocket协议的格式和相关知识。 WebSocket协议基本概念WebSocket协议由IETF标准RFC 6455定义,主要特点: 基于TCP的全双工通信 持久连接,避免多次握手 浏览器原生支持 数据格式轻量,相比HTTP头部开销小 支持二进制...
  • TCP协议是如何实现可靠性传输的

    TCP协议是如何实现可靠性传输的TCP(Transmission Control Protocol,传输控制协议)是一个具有可靠性传输、面向字节流、面向连接、全双工通信的传输层协议,这里我们主要介绍其可靠性传输特点以及具体的实现方式。 本文分为一下几点进行介绍: 序列号(Sequence Numbers)与确认应答(Acknowledgements - ACKs)机制 重传机制(Retra...
  • HTTP各个版本对比

    HTTP各个版本对比前置知识什么是HTTP​ HTTP (HyperText Transfer Protocol,超文本传输协议) 是一种用于分布式、协作式、超媒体信息系统的应用层协议。简单来说,它是万维网(World Wide Web)数据通信的基础,规定了客户端(通常是网页浏览器)和服务器(通常是网站服务器)之间如何请求和传输数据。 超文本 (HyperText) ​ 最初 HTTP 设...
  • 仿函数和Lambda表达式

    仿函数和lambda表达式仿函数仿函数,就是一种类类型,通过重载调用运算符”()”来实现像函数一样的调用功能,所以称之为仿函数 仿函数的优势 仿函数相比普通函数具有以下优势: 保存状态:仿函数可以在对象中保存状态 可作为模板参数:比函数指针更灵活 内联优化:编译器更容易对仿函数进行内联优化 类型安全:类型在编译期确定 1. 保存状态 (Saving State)介绍普通函数通常是无状...
  • Linux高级IO模型

    Linux 网络高级 IO五种IO模型 本文将介绍Linux网络编程中的五种常见网络高级IO函数 阻塞IO 在内核将数据准备好之前, 系统调用会一直等待. 所有的套接字, 默认都是阻塞方式. 非阻塞IO 如果内核还未将数据准备好, 系统调用仍然会直接返回 返回EWOULDBLOCK错误码. 该IO模式常需要以循环的方式反复尝试读写文件描述符, 这个过程称为轮询 但是轮询会带来大量的C...
  • MySQL 中的常见日志类型

    MySQL 中的常见日志类型错误日志(Error Log)基本概念记录 MySQL 服务器启动、运行和关闭过程中的问题 详细特点 默认启用,无法关闭 记录内容:启动/关闭信息、关键警告、错误消息 默认位置:数据目录下的 hostname.err 文件 配置参数:log_error 应用场景 诊断服务器崩溃原因 监控 MySQL 的运行状态 识别配置问题和安全风险 二进制日志(B...
12