- 博客(23)
- 收藏
- 关注
原创 交易引擎中的设计模式
这些模式共同构建了一个高内聚、低耦合的高频交易引擎架构,兼顾性能与可维护性。:支持多种交易算法的灵活替换。:实时市场数据的分发机制。:策略上下文的动态创建。:批量管理策略生命周期。:确保全局唯一引擎实例。
2025-04-02 09:40:45
400
原创 收集的一些问题?
典型应用场景:例如,订单系统中,当用户下单时,可以将订单信息写入 Redis 队列,后台异步处理订单数据并持久化到 MySQL 中。在高并发短连接场景下(如爬虫、压测),短时间产生大量连接关闭操作,超出端口回收速度(默认 6.5 万端口上限),导致。在实际应用中,Redis 和 MySQL 的结合往往是为了优化性能,尤其是在数据查询速度、读写压力大的情况下。通过用户态和内核态的隔离,操作系统可以限制应用程序的权限,只有内核有最高权限,这样能更好地管理系统资源。例如,在某些高并发场景下,
2025-03-29 13:44:18
774
原创 C++细节知识for面试
栈默认为8MB,可修改。为什么是这个大小:默认限制:为什么是这个大小:可以声明为 :C++标准允许构造函数和析构函数声明为 。隐式 :在类定义内部直接实现的构造函数和析构函数,默认会被编译器视为 ,无需显式声明。显式 :在类外定义时,需显式添加 关键字。在 C++ 中,函数作用域结束后,变量的析构是由编译器自动插入的代码触发的。 和 的内存对齐规则是完全相同的,唯一的区别在于默认的访问控制权限( 默认 , 默认 )。 用于实现无锁(lock-free)或低竞争(low-contention)的
2025-03-28 22:18:08
2333
原创 C++手撕共享指针、多线程交替、LRU缓存
当等待的条件(通常由传入的 lambda 表达式 predicate 检查)不满足时,线程会一直阻塞。个人理解:所谓mutex(mutual exclusion),本身仅是声明了一个互斥量,此时并不包含锁的意义。提供了更多的灵活性,比如能够延迟锁定、手动解锁或重新锁定,以及支持条件变量等待时的锁管理。方法后,等待线程会被唤醒并重新尝试获取锁,随后检查条件,直到条件满足为止。:当某个线程修改了共享数据并满足了等待线程所期望的条件后,它会调用。时,线程会进入等待状态,同时自动释放传入的。
2025-03-24 20:42:04
429
原创 HftStraBaseCtx交易订单控制模块
这是一个唯一的标识符,用来标识一个特定的交易操作。每当一个订单(如开仓、平仓、锁仓等)被触发时,系统会生成一个新的。这些规则决定了如何进行买入操作(比如是否执行开仓、平仓、锁仓等操作)。最大可平仓数量是剩余数量和可平仓数量中的较小值。普通平仓操作是最常见的平仓方式,它会根据当前的持仓状况来平掉多余的仓位。平昨仓是指平掉昨天的仓位,通常是在隔夜持仓的情况下进行。:如果平仓失败,撤销本地ID,并记录错误日志。如果成功,更新剩余数量。:如果操作失败,撤销本地ID。:如果平仓失败,撤销本地ID。
2025-03-24 19:17:02
700
原创 HTTP 核心知识点整理
强缓存失效 → 发起请求,验证协商缓存 → 返回 304 或新内容。:多次执行结果相同(如 GET、PUT、DELETE)。:不修改资源(如 GET、HEAD)。强缓存生效 → 直接返回本地缓存;
2025-03-24 15:46:48
1835
原创 理解火山模型:数据库查询中的流式处理与索引优化
B+ 树是数据存储结构,火山模型是查询执行框架。火山模型负责查询流程的控制,而 B+ 树作为索引结构提供高效的数据访问。火山模型通过索引扫描算子调用 B+ 树索引,执行精确查找或范围查找。火山模型的 Next() 方法逐步获取数据,而不是一次性读取所有数据,提高了查询效率。B+ 树索引加速了范围查询、点查询、索引连接等操作,减少了数据库的 I/O 开销。可以说,火山模型是查询的“执行者”,B+ 树是查询的“加速器”,两者配合使得数据库查询既灵活又高效!
2025-03-17 06:58:35
836
原创 Leetcode刷题笔记
`vector` | 否 | `std::lower_bound(begin, end, value)` || `set`/`map` | 是 | `container.lower_bound(value)` |在 C++ 中,vector 本身没有 lower_bound 方法,但可以通过标准库的泛型算法 std::lower_bound 来实现同样的功能。
2025-03-16 19:42:47
65
原创 cmu15445 project:4 锁管理器的实现
释放事务在指定表上的表级锁,更新事务状态。释放事务在指定行上的行级锁,更新事务状态。为事务在指定表上申请表级锁(支持。判断当前请求是否与已授予锁兼容。为事务在指定行上申请行级锁(仅。若循环结束仍未返回,默认返回。从事务锁集合中移除该行锁。从事务锁集合中移除该锁。更新事务的表级锁集合。更新事务的行级锁集合。
2025-03-15 01:06:54
947
原创 MySQL可重复读隔离级别解析:MVCC与Next-Key Lock的协作
在并发事务中,不可重复读(同一事务内多次读取结果不一致)和幻读(事务内出现新插入数据)是常见问题。MySQL的REPEATABLE READ隔离级别通过MVCC(多版本并发控制)和临键锁(Next-Key Lock)两大机制解决这些问题。
2025-03-13 01:17:09
766
原创 WonderTrader核心模块解析之WtCore:从实时行情处理到策略引擎设计
详解实时行情处理引擎(WtHftRtTicker)的多线程Tick驱动与分钟闭合逻辑,策略中枢引擎(WtHftEngine)的异步事件调度与数据订阅机制,以及策略上下文(ExpHftContext)与实时运行器(WtRtRunner)如何协同处理订单、持仓与市场事件,实现毫秒级交易决策与执行。
2025-03-10 21:55:46
891
原创 WonderTrader系统接口层设计:C++与Python的跨语言交互与策略开发
解析C++底层与Python策略层的高效交互设计,通过WtPorter接口层的C风格回调注册、数据注入与跨语言指令传递,打通Python策略与核心引擎的通信链路,并剖析WtRtRunner如何统一管理策略生命周期,实现从行情回放、事件触发到策略信号落地的全链路低延迟闭环
2025-03-10 21:48:26
644
原创 CMU15445 2022 project1: 缓存池(可扩展哈希+LRU-K)
在 C++ 中,定义和声明是两个重要的概念,它们在语法和功能上有所不同。理解它们的区别对于编写模块化代码和处理编译器的错误至关重要。声明(Declaration)声明告诉编译器某个变量、函数或类的存在及其基本信息(如类型、参数等),但不会为它分配内存或提供实现。使编译器了解某些符号(变量、函数、类)的存在,以便在使用它们时不会报错。特点仅提供“接口”信息。不生成代码,只是让编译器知道某个实体的类型或存在。通常出现在头文件或 .h 文件中。定义(Definition)
2025-03-10 21:43:15
793
原创 B+树核心实现与高并发控制深度解析:从数据结构到锁策略的完整设计
本文从源码层面深入剖析B+树的核心实现,涵盖以下核心内容:数据结构设计:详解B+树类、节点基类、叶子节点与内部节点的内存布局及关键方法(插入、查找、分裂)。并发控制机制:解读“螃蟹锁策略”与安全点检测技术,分析如何通过事务队列(PageSet)实现锁的顺序释放,避免死锁并提升并发吞吐量。
2025-02-26 23:26:08
1076
西南交通大学数据库实验课程设计
2023-03-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人