logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

C++ linux

zlib压缩库封装 及其使用

FlateCompressor是一个基于zlib库实现的DEFLATE算法压缩/解压缩工具。它采用PImpl模式隐藏实现细节,通过RAII机制自动管理资源,禁止拷贝以防止重复释放。核心功能包括支持0-9级压缩级别调节,提供二进制数据的无损压缩与解压。实现上使用deflateBound预分配输出缓冲区,inflate进行流式解压,并重用z_stream状态优化性能。该设计平衡了性能与易用性,适用于需

文章图片
#算法
编译过程 多个.c文件 . h文件 和main文件的 联系

问题多文件编写时为什么 多个.c 文件可以组合成为一个main.c 文件换句话说 主文件 main.c 怎么实现 将 多个 .c文件整合,而且是以包含这些 .c 文件的头文件 的方式, 而不是包含 其他.c文件的方式下面我以 add.cadd.hmain.c 文件为例add.h#ifndef __ADD__#define __ADD__intadd(int,int);#endif /*__ADD_

#编辑器
C++ 并发编程指南 实现无锁队列

摘要: 无锁环形队列通过环形结构实现高效并发操作,类似于旋转寿司店的运作模式。队列使用原子变量(_head、_tail、_tail_update)协调生产者和消费者,避免数据竞争。核心操作包括: 入队(Push):生产者通过CAS更新_tail,确保数据写入后更新_tail_update; 出队(Pop):消费者检查_tail_update后读取数据,并通过CAS推进_head。 代码示例(C++

文章图片
#c++#缓存#开发语言
C++并发编程指南14 限时等待

C++限时等待机制解析 本文系统介绍了C++中实现线程限时等待的核心机制。主要内容包括: 限时等待的必要性:避免无限期阻塞,提升用户体验和系统健壮性,满足实时性需求。 核心计时组件: 时钟(Clock):提供时间基准,区分稳定时钟(steady_clock)和系统时钟(system_clock) 时间段(Duration):表示时间长度,支持不同精度单位和运算 时间点(Time Point):表示

#c++#java#开发语言
C++并发编程指南13 为什么需要future

条件变量 vs. std::future:咖啡机维修对比 条件变量实现(复杂且易错) // 需要手动管理共享状态、互斥锁和条件变量 struct RepairStatus { std::string result; bool is_completed = false; std::exception_ptr exception = nullptr; }; class RepairService {

文章图片
#c++#java#开发语言
C++并发编程指南12 虚假唤醒的深入解析与解决

虚假唤醒是操作系统为提高性能而允许的机制,本质是唤醒与条件满足的解耦。其发生原因包括:1)操作系统的性能优化(如futex机制批量唤醒);2)硬件中断影响;3)UNIX信号处理;4)多核处理器竞争。解决方案是使用while循环而非if判断条件,确保每次唤醒后重新验证条件是否满足。典型模式为while(!condition) cv.wait(lock),这种防御性编程能有效处理虚假唤醒,确保并发程序

文章图片
#c++#开发语言
C++并发编程指南12 等待事件或条件

本文摘要:C++条件变量是多线程编程中实现线程同步的重要工具。文章通过火车旅行的类比,对比了忙等待、休眠等待和条件变量三种等待方式的优劣。详细介绍了条件变量的核心组件(std::condition_variable、std::mutex等)和关键成员函数(wait、notify_one、notify_all),并提供了完整的使用示例代码。重点讲解了虚假唤醒、锁管理等关键概念,最后给出了条件变量的最

#c++#java#开发语言
C++并发编程指南 10 死锁预防 (超时锁)

摘要 超时锁是多线程编程中防止线程无限等待的机制,允许设置获取锁的时间限制。文章详细介绍了超时锁的核心概念,包括避免死锁、提高响应性等优势,并演示了C++中的两种实现方式:try_lock_for()(相对时间)和try_lock_until()(绝对时间)。通过三个完整代码示例展示了基础超时锁定、高级多锁协同获取以及多线程环境下的超时锁应用,每种情况都包含详细的超时处理和资源释放逻辑。这些实现均

#c++#开发语言#算法
pdfium 中 retain_ptr.h 介绍与使用

摘要 RetainPtr 是一个基于引用计数的智能指针系统,实现了类似 scoped_refptr 的功能。其核心特点包括: 使用 std::unique_ptr 管理指针,但自定义删除器调用 Release() 而非 delete 实现了完整的构造/析构、拷贝/移动语义,支持类型转换 提供了 Reset()、Leak()/Unleak() 等指针管理方法 重载了各种操作符,使智能指针使用更自然

#算法
C++ Stream 类层次结构深度解析 ios_base basic_ios basic_streambuf basic_ostream basic_istream basic_iostream

C++ Stream 类层次结构解析摘要 C++ I/O流类层次结构从底层到高层依次为:ios_base、basic_ios、basic_streambuf及其派生类。 ios_base:提供流的基础设施,包括: 格式化标志管理(hex/dec/oct等格式) 异常处理机制(goodbit/eofbit等状态) 本地化支持(如数字分隔符) 扩展存储功能 basic_ios:管理流状态和缓冲区,核心

#ios#c++#cocoa
    共 20 条
  • 1
  • 2
  • 请选择