定义CPU采样数据结构(CPU标识、使用率、时间戳),设计并实现定长环形缓冲区,通过头尾指针和元素计数实现循环复用,避免频繁内存分配
实现线程安全的生产者-消费者模型:生产者写入数据时互斥保护,队列满时立即返回(不阻塞采样线程);消费者支持阻塞等待和超时返回两种模式
使用 互斥锁(pthread_mutex_t) 保护缓冲区的所有操作,使用条件变量(pthread_cond_t) 实现消费者在队列为空时释放CPU、有数据时被唤醒的高效等待机制
设计 “双阈值”批量取出策略:消费者可设定最多取出条数(max)和最长等待时间(timeout_ms),任一条件满足即返回,平衡实时性与吞吐量
实现完整的资源管理:初始化时分配内存,销毁时释放锁、条件变量和缓冲区,避免资源泄漏
C、Linux系统编程、多线程、互斥锁、条件变量、环形缓冲区、时间序列采样