logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++ vector

vector 本质是[]at()pop_back()

文章图片
#c++#算法#开发语言
Linux.基础I/O

文件描述符就是进程打开文件的 “整数 ID”,是用户态和内核态之间操作文件的唯一桥梁,所有文件操作最终都要通过它和内核交互。强行让 newfd 变成 oldfd 的副本是 Linux 实现输入 / 输出重定向的唯一底层函数操作对象是文件描述符,和是一套系统调用重定向:打开方式+dup2缓冲区就是一块内存区域,用于临时存放数据,解决读写双方的速度差异,等攒够数据或时机合适时,再统一处理,避免频繁的低

文章图片
#linux
Linux Ext系列⽂件系统

我们常说的磁盘,分为 机械硬盘(HDD,就是下面图里的这种)

文章图片
#运维
linux 线程概念与控制

特性进程线程资源开销高低切换速度慢快隔离性强(独立地址空间)弱(共享进程资源)通信复杂度高(需 IPC 机制)低(共享内存,需同步)编程难度相对简单(无锁,隔离性好)较高(需精细同步设计)适用场景稳定性优先、隔离性要求高性能优先、高频数据交互。

文章图片
#java#jvm#开发语言
Linux 网络基础

✅ 发送:应用数据 → TCP 报头 → IP 报头 → 以太网报头 → 二进制比特流✅ 接收:比特流 → 去除以太网报头 → 去除 IP 报头 → 去除 TCP 报头 → 原始应用数据生活化类比:每经过一层协议就多贴一张快递中转标签,收件时依次撕掉全部标签,取出最内侧货物。IP 负责找到目标所在 “城市(网段)”,MAC 负责在目标城市里精准找到 “具体住户(终端设备)”。MAC→局域网找设备;

文章图片
#网络
Linux 程序设计模式

生产者消费者模型是操作系统和多线程编程中的经典同步 / 互斥模型,在 Linux 多线程场景中尤为常见。它的核心目标是:解决生产者和消费者之间 “生产 / 消费速度不匹配” 的问题,同时实现两者的解耦与安全协作。简单来说,模型描述了两类线程如何通过一个固定大小的共享缓冲区(仓库)协调工作,避免数据竞争、死锁或资源浪费。角色核心职责阻塞规则生产者线程负责生成数据,将数据放入缓冲区缓冲区满时,必须停止

#javascript#前端#开发语言
Linux 应用层自定义协议与序列化

• toStyledString 、StreamWriter 和 FastWriter 提供了不同的序列化选项,你可以根 据具体需求选择使⽤。• Json::Reader 和 parseFromStream 函数是Jsoncpp中主要的反序列化⼯具,它们提供了强 ⼤的错误处理机制。• 在进⾏序列化和反序列化时,请确保处理所有可能的错误情况,并验证输⼊和输出的有效性。

文章图片
#linux#服务器#java
Linux 传输层协议UDP

TCP有发送缓冲区是因为如果数据丢了要重传。只有收到数据已送达的信号才会清空发送缓冲区;UDP是不可靠传输协议,数据丢了就丢了。没有重传这一概念,因此没有发送缓冲区。为什么UDP要有接收缓冲区?因为进行网络通信时,上层要做很多工作。因此OS要提供一个接收数据的能力,上层忙的时候,OS也能缓存一部分报文,如果接收缓冲区满了,再发送报文,则该报文会被丢弃,丢弃后UDP并不会关心。报文的理解报文=报头+

文章图片
#linux#udp#运维
Linux信号

进程可以注册一个自己写的函数,当收到信号时,不执行默认动作,而是执行我们自定义的逻辑。注册方式:用signal()或更安全的系统调用,把信号和自定义处理函数绑定。关键注意事项:信号处理函数里,必须使用异步信号安全的函数(也叫可重入函数),比如write()类型的操作。不能用printfmalloc这类非安全函数,否则可能导致程序崩溃。类比:就像上课铃响了,你不回教室,反而去操场打球,就是 “自定义

文章图片
#linux#运维#服务器
    共 19 条
  • 1
  • 2
  • 请选择