logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux 线程学习总结:创建、等待、退出、分离

joinable(默认)• 需要 pthread_join• 可获取返回值• 不 join → 资源泄漏detached(分离状态)• 无需 join• 自动释放资源• 不能被 join• 适合后台长期运行线程线程默认 joinable,必须 join,否则泄漏。线程退出三种方式:return、pthread_exit、pthread_cancel。pthread_cancel 不是立即杀死线程,

#linux#学习#c++
【Linux 多线程实战总结】条件变量 + 生产者消费者模型 + 阻塞队列 从 0 到 1 全解析

在多线程编程中,我们会遇到线程同步问题:多个线程操作共享资源时,需要让线程在条件不满足时等待,条件满足时唤醒。互斥锁只能解决线程安全,无法解决线程协同等待 / 唤醒,因此条件变量(Condition) 应运而生。本文将从核心 API→原理→封装→实战模型→踩坑全流程讲解,最终实现多生产者多消费者。条件变量核心配合互斥锁使用,解决线程同步 / 等待唤醒Wait是原子操作:释放锁 → 等待 → 抢锁条

文章图片
#linux#缓存#c++ +2
c++的一些小语法

对象中为了区分不同的对象调用相同的类成员函数,在编译器编译后,类的成员函数默认都会在形参的第一个位置,参加一个当前类的指针,叫做this指针。5.如果嵌套了结构体,算两步,嵌套的结构体对齐到自己的最大对齐整数倍中,结构体的整体大小就是所有最大对齐数的整数倍。5.跟构造函数一样,我们不写,编译器会自动生成析构函数对内置成员不做处理,自定义类型成员会调用它的析构函数。5.如果没有写,编译器会自动生成,

#c++#开发语言
面试中常考的问题:C语言部分

在操作系统中,从左向右地址是从小到大的,如果是大端存储,那么数据的从高地址位开始存储,否则是小端的话就从低地址开始存储int i = 1;//大端else {//小端首先#define在预处理阶段就进行处理,而const int是在编译阶段进行处理的第二个就是#define就是进行简单的文本替换,不会对类型安全进行检查,而const int会进行安全检查第三个就是#define调试可能会比较困难,

文章图片
#面试#c语言#算法
【Linux 多线程实战总结】条件变量 + 生产者消费者模型 + 阻塞队列 从 0 到 1 全解析

在多线程编程中,我们会遇到线程同步问题:多个线程操作共享资源时,需要让线程在条件不满足时等待,条件满足时唤醒。互斥锁只能解决线程安全,无法解决线程协同等待 / 唤醒,因此条件变量(Condition) 应运而生。本文将从核心 API→原理→封装→实战模型→踩坑全流程讲解,最终实现多生产者多消费者。条件变量核心配合互斥锁使用,解决线程同步 / 等待唤醒Wait是原子操作:释放锁 → 等待 → 抢锁条

文章图片
#linux#缓存#c++ +2
【Linux 多线程实战总结】条件变量 + 生产者消费者模型 + 阻塞队列 从 0 到 1 全解析

在多线程编程中,我们会遇到线程同步问题:多个线程操作共享资源时,需要让线程在条件不满足时等待,条件满足时唤醒。互斥锁只能解决线程安全,无法解决线程协同等待 / 唤醒,因此条件变量(Condition) 应运而生。本文将从核心 API→原理→封装→实战模型→踩坑全流程讲解,最终实现多生产者多消费者。条件变量核心配合互斥锁使用,解决线程同步 / 等待唤醒Wait是原子操作:释放锁 → 等待 → 抢锁条

文章图片
#linux#缓存#c++ +2
Linux/C++ 线程与互斥锁封装学习总结

4.1 线程封装核心用 std::function 封装线程函数,支持多种函数类型。static 入口函数作为跳板,传递 this 指针,解决 pthread 函数格式要求。join/detach 模式控制线程生命周期,避免内存泄漏。4.2 互斥锁封装核心Mutex 类封装 pthread_mutex_t,负责锁的初始化、加锁、解锁、销毁。禁止锁的拷贝/赋值,保证锁的唯一性。LockGuard 用

文章图片
#c++#linux
到底了