logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++ 哈希表

本文详细介绍了哈希表的原理与实现方法。首先解释了哈希表的基本概念,即通过哈希函数将键映射到数组下标来存储数据。文章分析了常见的哈希冲突处理方式,包括开放定址法(线性探测、二次探测)和链地址法,并提供了相应的C++实现代码。针对链地址法的优化,提出了当链表过长时转换为红黑树的方案。此外,还介绍了负载因子概念和扩容机制,以及除法散列法、乘法散列法等哈希函数设计方法。文章通过丰富的代码示例展示了如何实现

文章图片
#散列表#算法#数据结构 +1
Linux 网络 - HTTP -cookie session

摘要:HTTP协议本身是无状态的,但通过Cookie机制可以实现用户登录状态的保持。Cookie是服务器发送到浏览器的一小段数据,用于在后续请求中识别用户身份。本文介绍了Cookie的工作原理、分类(会话Cookie和持久Cookie)、基本格式和安全属性(如HttpOnly、Secure)。通过一个简易HTTP服务器示例,展示了如何设置Cookie。同时指出Cookie存在安全隐患,即使采用加密

文章图片
#http#网络协议#网络
c++ 容器 vector

vector的原理,函数使用及实现

文章图片
#c++#开发语言
c++之命名空间详解(namespace)

详细解说namespace的语法,彻底掌握它的用处,为函数、变量和类的熟练使用做铺垫

文章图片
#c++
Linux - 缓存利用率

本文探讨了CPU多级缓存(L1-L3)的工作原理及其对程序性能的影响。L1缓存访问速度可达内存的百倍,L2为30-100倍,L3为10-30倍。缓存行通常为64字节,CPU会预加载邻近数据以提高命中率。数据结构缓存利用率排序为:紧凑数组>B+树/顺序表>跳表>平衡二叉树>哈希表>链表。优化建议包括:1)SOA/AOS数据布局选择;2)64字节对齐减少缓存行浪费;3)冷

文章图片
#缓存#c++#linux
Linux 基础IO

本文系统介绍了文件操作的核心概念和技术要点。首先阐述了文件的狭义定义(磁盘存储)和广义理解(Linux下一切皆文件),并说明文件由属性和内容构成。重点解析了Linux系统调用(open、read、write、lseek、fcntl)的使用方法,包括标志位参数和权限设置。详细说明了文件描述符的分配规则、标准输入/输出/错误的文件描述符(0/1/2),以及通过dup2实现原子操作的输入输出重定向。最后

文章图片
#linux#运维#服务器
Linux - 进程间通信

本文介绍了Linux系统下进程间通信(IPC)的几种主要方式及其实现原理。首先阐述了进程通信的四大目的:数据传输、资源共享、事件通知和进程控制。然后详细分析了匿名管道和命名管道的使用场景、优缺点及实现方法,包括pipe()和mkfifo()系统调用。重点讨论了共享内存机制,对比了System V和POSIX两种实现方式,详细讲解了mmap()系统调用的原理和使用场景,包括匿名映射和文件映射两种模式

文章图片
#linux#服务器#运维
Linux - 进程信号

本文详细介绍了Linux系统中的信号机制。信号是进程间异步通信的一种方式,属于软中断。文章首先通过快递的比喻解释了信号的概念和处理过程,包括信号的产生、保存和处理三个阶段。然后详细介绍了信号的种类、产生方式(如Ctrl+C、raise、abort、alarm等),以及信号的处理方法(默认、忽略、自定义)。文章还深入讲解了信号的保存机制(未决和阻塞状态)、信号集操作函数、以及信号捕捉的具体流程。最后

文章图片
#linux#c++
Linux - 线程的同步与互斥

线程互斥通过互斥量(mutex)解决竞态条件,需规范初始化、加锁解锁及临界区界定。条件变量配合互斥量使用,需处理虚假唤醒问题。生产者-消费者模型可采用阻塞队列或环形队列,条件变量适用于复杂同步,信号量适合简单资源计数。线程池优化线程创建开销。线程安全与可重入性区别在于共享数据访问方式。死锁需满足互斥、占有等待、非抢占和循环等待四条件。锁类型包括互斥锁、读写锁、自旋锁等,各有适用场景

文章图片
#linux#c++
    共 18 条
  • 1
  • 2
  • 请选择