Home
AI
Course
李宏毅 ML/DL
Linear Algebra
Python
Django
基础
C++
知识点
STL
基础
Linux
性能分析 tools
Windows
Interview
工作经历
Q&A
LeetCode
高频考题
面试经典150题
Archives
About
疯狂的TalentQ
累计撰写
104
篇文章
累计创建
0
个标签
累计收到
1
条评论
栏目
Home
AI
Course
李宏毅 ML/DL
Linear Algebra
Python
Django
基础
C++
知识点
STL
基础
Linux
性能分析 tools
Windows
Interview
工作经历
Q&A
LeetCode
高频考题
面试经典150题
Archives
About
目 录
CONTENT
以下是
TalentQ
的文章
2025-09-11
C++ 优化多线程程序,需要考虑什么?
减少锁的竞争 缩小临界区:只将必须互斥的代码用锁保护起来,尽快释放锁。避免在临界区内进行耗时操作(如I/O、复杂计算)。 使用更细粒度的锁:不要用一个“大锁”保护所有数据。使用多个锁保护不同的数据,允许线程并行访问不同的资源。(例如,一个锁保护用户列表,另一个锁保护日志文件)。 使用读写锁:如 st
2025-09-11
3
0
0
知识点
C++
2025-09-11
C++ 无锁结构
C++ 无锁结构是一种通过原子操作(如 std::atomic 及其 compare_exchange_strong/weak CAS 操作)而非互斥锁来实现线程安全并发访问的数据结构。 它的核心优势在于避免了锁带来的死锁、优先级反转和高争用下的性能开销,能提供更可预测的低延迟。 然而,实现正确的无
2025-09-11
4
0
0
知识点
C++
2025-09-11
IPC & RPC
IPC 和 RPC 是不同层面的通信概念。IPC 解决的是本地多进程如何协作通信的问题,是操作系统提供的基础机制,比如管道、消息队列和最快的共享内存。而 RPC 解决的是分布式系统下如何透明地调用远程服务的问题,它是一种高层设计模式,通常需要序列化、网络传输等服务发现等组件支持。 RPC 的目标是让
2025-09-11
6
0
0
C++
知识点
2025-09-11
select、poll、epoll 原理
select、poll 和 epoll 都是 Linux 下实现 I/O 多路复用的机制,允许一个进程监听多个文件描述符。其核心原理区别在于: select 和 poll 都采用轮询机制,每次调用都需要将全部监听的文件描述符从用户空间拷贝到内核空间,由内核进行线性扫描检查是否有事件就绪,导致性能随监
2025-09-11
3
0
0
Linux
2025-09-11
进程、线程、协程
进程 定义:资源分配的最小单位。程序的一次执行实例。它是一个独立的、自包含的实体。 核心特点: 拥有独立资源:每个进程都有自己独立的内存地址空间(代码段、数据段、堆栈)、文件描述符、系统资源(如CPU时间、权限等)。 安全性高:一个进程的崩溃通常不会影响其他进程,因为它们的 memory space
2025-09-11
3
0
0
Linux
2025-09-11
进程间通信、线程间通信
进程间通信 (IPC - Inter-Process Communication): 痛点:进程拥有独立的虚拟内存地址空间。一个进程无法直接访问另一个进程的内存数据。 核心目标:突破隔离壁垒,在不同的地址空间之间交换数据。 本质:通信需要经过操作系统内核的协助,或者通过一块双方都能访问的共享区域。
2025-09-11
2
0
0
C++
2025-09-11
C++ 零拷贝(Zero-Copy)
C++ 中的零拷贝是一系列旨在消除不必要内存拷贝的技术,核心思想是让不同实体共享数据而非复制数据,以此大幅提升 I/O 密集型应用的性能。 传统的数据操作:涉及 4 次上下文切换(用户态/内核态切换)和 至少 2 次数据拷贝(内核态->用户态,用户态->内核态) 主要实现手段包括: 使用 sendf
2025-09-11
7
0
0
知识点
C++
2025-09-11
找到两个链表的交点
1 截断成等长的链表 先获取两个链表的长度; 让长的链表先走长度的差值,这样剩下的两条链表长度一样; 依次比较链表的节点地址; 地址相同则找到,到链表尾部还没找到则返回空; // Definition for singly-linked list. struct ListNode { int
2025-09-11
1
0
0
LeetCode
高频考题
2025-09-11
反转链表
1 简单实现 #include <memory> #include <iostream> struct Node { int data; std::unique_ptr<Node> next; Node(int value) : data(value), next(nullptr) {
2025-09-11
3
0
0
LeetCode
高频考题
2025-09-10
C++ 实现 生产者-消费者 模型
0 目标 使用 C++ 手搓一个“生产者-消费者”模型,涉及 std::thread、std::queue、std::mutex、std::condition_variable。 1 简单的 生产者-消费者 模型 生产者生产数据,存放在队列中,如果队列满了就阻塞住;消费者消费数据,从队列中取出,如果
2025-09-10
3
0
0
C++
知识点
1
2
3
4
5
...
11