随笔分类 - 多线程
摘要:原理 1、使用智能指针管理共享资源 2、write端,若引用计数为1,则write端独占资源,若引用计数不为1,则对共享资源备份进行写操作,以确保线程安全 3、read端,读之前引用计数加1,write端此时若并发访问共享资源,则会发现引用计数不为1,write端不会直接写共享资源,确保线程安全 代
阅读全文
摘要:一、自旋锁 1、概述 自旋锁(Spin Lock)类似于互斥量,不过自旋锁不是通过休眠阻塞线程(进程),而是在取得锁之前一直处于循环等待的阻塞状态,因此得名“自旋”。自旋锁常作为底层原语实现其他类型的锁。 2、适用场景 1)锁被持有的时间短,而且线程不希望在重新调度上花费太多成本; 2)在非抢占式内
阅读全文
摘要:一、线程操作 1、创建线程 /** * 参数 * tidp: 指向线程标识符的指针 * attr: 线程属性 * start_rtn: 回调函数 * arg: 运行回调函数所需参数 * * 返回值 * 创建成功返回 0, 否则返回错误码 */ int pthread_create(pthread_t
阅读全文
摘要:一、什么是生产者-消费者模型 1、简单理解生产者-消费者模型 假设有两个进程(或线程)A、B和一个固定大小的缓冲区,A进程生产数据放入缓冲区,B进程从缓冲区中取出数据进行计算,这就是一个简单的生产者-消费者模型。这里的A进程相当于生产者,B进程相当于消费者。 2、为什么要使用生产者-消费者模型 在多
阅读全文