自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 agent_tool项目

系统提示词。通过「角色设定 + 行为准则」结构化地塑造「大内太监总管」人设:称用户「皇上」、自称「奴才」、回复以「奉天承运皇帝诏曰」开头、全程中文。系统提示词位于消息列表首位,对整段对话起全局约束作用,优先级高于用户消息。:初始化对话历史列表,首条即系统消息。后续每轮对话(user / assistant / tool)都会追加到这个列表,下次请求时整体回传给模型,使模型「记得」上下文,实现多轮对话。这是无状态 API 实现「有状态对话」的标准做法。九、主循环:Agent 对话与工具调用。

2026-08-20 20:38:38 336

原创 agent项目1

定义:虚拟环境就是一个"隔离的、独立的 Python 工作空间"。在这个环境之中可以安装自己想要的python宝,而不影响系统中其他的python包。被注释掉的代码(第 51-56 行)展示了如何获取更细粒度的信息:回复内容、模型名、时间戳、各类 token 消耗量。├── bin/ # 可执行文件(Python 解释器、pip、激活脚本等)│ └── site-packages/ # 所有第三方包安装在这里 ★。这是虚拟环境最核心的目录,所有。

2026-08-12 17:00:53 168

原创 Placement new

普通new做两件事:分配内存 + 调构造函数。Placement new 只做第二件事——在你给定的内存地址上调用构造函数,不分配任何内存。语法是,其中ptr是一块已经分配好的内存。对应地,销毁时不能用delete(它会试图释放这块内存,但这块内存不是new分配的),必须手动调析构函数,然后用原始方式释放内存。语法就是,括号里的指针指向一块的内存。

2026-06-03 11:46:09 314

原创 STL allocator作用

Allocator 是 STL 中负责的组件,核心作用是把容器的数据结构逻辑和底层内存操作。它有四个职责:分配原始内存(allocate)、释放内存(deallocate)、在已有内存上构造对象(construct)、析构对象但不释放内存(destroy)。通过模板参数注入不同的 allocator,可以在不改容器代码的情况下切换内存策略。newallocator 把"要内存"和"构造对象"了。destroy(p)这四步把"内存的生命周期"和"对象的生命周期"彻底分开了。

2026-06-02 15:05:24 359

原创 关于如何用智能指针避免手写深拷贝

可以利用。

2026-06-01 17:07:54 332

原创 HTTP(1)

强缓存指的是只要浏览器判断缓存没有过期,则直接使用浏览器的本地缓存,决定是否使用缓存的主动性在于浏览器这边。, 是一个相对时间;Expires,是一个绝对时间;如果 HTTP 响应头部同时有 Cache-Control 和 Expires 字段的话,Cache-Control 的优先级高于 Expires。Cache-control 选项更多一些,设置更加精细,所以建议使用 Cache-Control 来实现强缓存。

2026-04-24 21:02:38 462

原创 (3)WorkingStealingPoll工作窃取线程池实现

多队列架构:每个线程拥有独立的任务队列工作窃取机制:空闲线程可以从其他队列窃取任务负载均衡:动态调整负载,避免某些线程过载减少锁竞争:每个线程优先访问自己的队列缓存友好:提高缓存命中率,提升性能批量操作:支持批量获取和执行任务在多核环境下性能优异适合任务执行时间差异大的场景自动实现负载均衡减少锁竞争,提高并发性能高性能计算并行算法实现大规模数据处理游戏引擎科学计算。

2026-04-19 18:50:59 411

原创 (2)CachedThreadPoll缓存线程池实现

动态扩容:任务多时自动创建新线程自动收缩:任务少时自动销毁空闲线程核心保障:保持核心线程不销毁弹性伸缩:在核心数和最大数之间动态调整拒绝策略:队列满时由调用者直接执行线程安全:使用原子操作和互斥锁保证安全任务负载波动较大的应用需要快速响应突发任务希望优化资源利用率的场景任务负载稳定的应用(使用固定线程池更合适)对线程数量有严格限制的场景需要精确控制线程行为的场景。

2026-04-18 20:43:45 353

原创 (1)FixedThreadPoll固定线程池实现

固定线程池是一种线程数量固定的线程池,线程数量在创建时确定,运行过程中不会动态调整。它适用于任务量相对稳定、对资源控制要求严格的场景。:当队列有空闲空间时,通知等待的生产者线程。作为底层容器,支持高效的头部和尾部操作。修饰符允许在const成员函数中加锁。:当队列有数据时,通知等待的消费者线程。这些方法需要在持有锁的情况下调用。:防止队列无限增长,控制内存使用。:用于安全停止队列,避免死锁。

2026-04-18 20:11:18 369

原创 I/O复用技术(select,poll,epoll)

本文详细介绍了基于TCP的Socket编程流程,包括服务端创建、绑定、监听和客户端连接过程。重点分析了三种高并发处理模型:多进程模型(通过fork子进程处理连接)、多线程模型(使用线程池减少创建开销)和I/O多路复用技术。其中深入对比了select/poll(线性遍历)与epoll(事件驱动)的实现机制,阐释了epoll通过红黑树管理fd、就绪链表和回调机制实现高效事件通知的原理。文章还详解了epoll的两种触发模式(LT和ET)及其适用场景,并通过完整代码示例展示了epoll的实际应用

2026-04-15 19:16:52 398

原创 线程同步问题

按理来说,i变量最后的值应该是20000,可最后输出结果并非一定是20000;

2026-04-15 14:27:57 356

原创 进程间通信

方式速度适用场景是否需要同步通信范围管道中等简单数据流传输不需要有亲缘关系进程共享内存最快大数据量高性能需要本地任意进程消息队列中等消息格式化传输不需要本地任意进程信号快事件通知不需要本地任意进程信号量快进程同步本身就是同步机制本地任意进程Socket慢跨机器/通用通信不需要本地/远程共享内存 + 信号量 = 高效且安全的数据共享Socket + 多线程 = 高并发服务器管道 + fork() = 简单的父子进程协作。

2026-04-14 16:41:19 355

原创 进程,线程基础知识

进程(Process)是。

2026-04-14 14:02:01 364

原创 Linux五种I/O模型

I/O = Input/Output,输入/输出。数据的流动输入:数据从外部设备 → 进入内存(比如读文件、收网络包、键盘输入)输出:数据从内存 → 到外部设备(比如写文件、发网络包、屏幕显示)

2026-04-12 15:20:03 409

原创 C++移动赋值/移动构造,深/浅拷贝函数

优先实现移动语义:管理资源的类都应该实现移动后源对象要"合法但未指定":析构不能崩溃有移动语义就别拷贝std::move后不要再使用源对象noexcept很重要:标准库容器在扩容时会优先使用noexcept的移动构造浅拷贝深拷贝复制内容指针地址指针指向的实际数据内存共享独立问题double free、数据竞争性能开销默认行为编译器默认需要自己实现原则。

2026-04-12 14:00:11 203

原创 C++lambda表达式

int age;// 按年龄排序});

2026-04-11 13:25:28 48

原创 C++完美转发

简要来说,完美转发就是:函数接收参数时,保持参数原本的值类别(左值还是右值),原封不动地传给另一个函数。结果?两次都输出。因为arg在wrapper内部是个有名字的变量,。右值属性丢了解决方案:万能引用+std::forward。

2026-04-08 15:02:25 55

原创 C++智能指针

资源获取即初始化核心思想:把资源的生命周期绑定到对象的生命周期 构造时获取资源 析构时释放资源2.为什么需要RAII、传统C风格痛点// 痛点 1:忘记释放// ... 一堆代码// 忘记 delete p;→ 内存泄漏// 痛点 2:异常导致泄漏// 如果抛出异常?delete p;// 永远执行不到!// 痛点 3:多重返回路径fclose(f);// 返回路径 1return;// ... 其他逻辑fclose(f);// 返回路径 2return;

2026-04-08 14:31:39 181

原创 C++编译链接过程

│ 链接阶段全景 ││ ││ ↓ ││ │ 空间分配 │ ││ ↓ ││ │ 符号解析 │ ││ │ - 匹配定义引用 │ ││ │ - 检查重复定义 │ ││ ↓ ││ │ 段合并 │ ││ ↓ ││ │ 重定位 │ ││ │ - 分配最终地址 │ ││ │ - 修正地址引用 │ ││ ↓ ││ │ 可执行文件 │ ││ ↓ ││ ↓ ↓ ││ 静态链接 动态链接 ││ - 代码嵌入 - 运行时加载 ││ - 文件大 - 文件小 ││ - 无依赖 - 有依赖 │。

2026-04-07 16:30:04 441

原创 C++三大特性

三大特性:封装隐藏细节,继承复用代码,多态实现灵活菱形问题:多继承导致基类副本重复,引发二义性虚继承:通过virtual关键字确保基类唯一实例,代价是轻微性能损失。

2026-03-25 14:28:19 216

原创 static使用注意事项

static的核心作用是。

2026-03-24 16:29:33 190

原创 Mysql 01

MySQL架构共分为两层:Server层和存储引擎层Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现,主要包括连接器,查询缓存、解析器、预处理器、优化器、执行器等。另外,所有的内置函数(如日期、时间、数学和加密函数等)和所有跨存储引擎的功能(如存储过程、触发器、视图等。)都在 Server 层实现。存储引擎层负责数据的存储和提取。支持 InnoDB、MyISAM、Memory 等多个存储引擎,不同的存储引擎共用一个 Server 层。

2026-03-24 15:36:20 405

原创 票务预约系统代码3

系统接入了数据库,用于存储注册用户的信息。其中创建了Project_DB数据库和user_info表。

2026-03-10 19:17:03 378

原创 Json讲解

JSON 是一种简单、强大、跨语言的数据交换格式,在现代 Web 开发中被广泛使用。简单易用:语法简洁,易于学习和使用高效:数据体积小,解析速度快灵活:支持复杂的数据结构广泛支持:几乎所有编程语言都有 JSON 库通过 JsonCpp 库,可以在 C++ 项目中轻松地创建和解析 JSON 数据,实现客户端与服务器之间的结构化数据交换。

2026-03-09 21:04:57 276

原创 票务预约系统代码2

类的成员函数,是客户端应用的核心实现文件。

2026-03-09 20:45:48 381

原创 票务预约系统代码1

这是服务器的核心类,负责监听套接字的创建、初始化和客户端连接的接受。负责单个客户端连接的管理,封装了客户端套接字和数据处理逻辑。public:socket_con(int fd):c(fd)//构造函数c_ev=NULL;~socket_con()//析构函数close(c);void Set_ev(struct event* ev)//设置事件//接收数据private :int c;//客户端套接字文件描述符。

2026-01-28 22:23:50 701

原创 libevent基础入门

Libevent是一个开源的、跨平台的,基于 Reactor 模式实现,核心作用是帮助开发者高效处理大量并发的 I/O 事件、定时器事件和信号事件。

2026-01-28 22:09:02 544

原创 静态局部变量,全局变量和局部变量

使用。

2025-12-24 23:45:00 468

原创 指针的进阶

关于const:const关键字可以修饰变量和指针,成为常变量或常数组。从上图也可以修饰指针变量;const与指针配合使用有两种作用,一是限制指针变量,二是限制指针变量指向的数据。

2024-05-26 17:21:33 415

原创 结构体基础

让我们自己编写一个学生类型结构体。

2024-05-12 12:14:13 255 1

原创 指针的基础

4.当指针只进行定义而没有赋值时,不可以运用。通常对这一类代码赋值为NULL,称之为空指针。1.对指针加减一个整数,表示地址向增大或减小方向移动n*sizeof(type)个字节。2. 指针进行自增自减的运算时,指针将会指向上一个或下一个数据单元。指针间的比较值两个指针所指向变量的地址的高低,并非变量值的大小。1.指针指向的变量必须在指针定义前进行定义。3.指针只能指向相同类型的变量。2.指针内容必须为地址。

2024-05-08 18:10:21 308 1

票务预约系统项目讲解客户端

票务预约系统项目讲解客户端

2026-03-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除