昱卿本卿
Preview Image

采用 std::atomic_flag 实现自旋锁

std::atomic_flag 是 c++ 标准库中的原子标志类,用于实现基本的原子操作。它提供了一种简单的机制来保护共享资源,可以用于实现自旋锁和其他线程同步的机制。std::atomic_flag 只能表示两个状态:设置(set)和清除(clear),并且保证对它的操作是原子的,避免了数据竞争和并发访问的问题。 什么是自旋锁 自旋锁属于 busy-waiting 类型锁,它避...

Preview Image

std::condition_variable 简单用法

std::condition_variable 是 c++ 标准库中的条件变量,用于实现线程间的同步与通信。它可以与 std::mutex 配合使用,通过等待和通知的机制,实现线程的阻塞和唤醒操作,使线程能够在特定条件满足时进行等待,或者在条件变量发生变化时进行通知,从而实现线程间的协调与同步。 常用成员函数 wait(); // 阻塞当前线程直到条件满足被唤醒 wait_for(); ...

Preview Image

c++ 优先级队列

c++ 中的优先级队列是基于堆实现的,可以快速地插入新元素,并能够快速地取出当前优先级最高(或最低)的元素。优先级队列在 头文件中定义,是标准模板库的一部分。 使用优先级队列之前,需要包含 头文件,并且可以自定义存储的元素类型和元素之间的比较方式。如果不指定比较方式,默认使用 std::less ,元素会按照从大到小的顺序排列,最大元素优先。 基本使用 不指定优先级的比较方式,采用默...

Preview Image

单例模式

单例模式是一种设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。在 c++ 中,可以通过使用静态成员变量和静态成员函数来实现单例模式。通过将构造函数设置为私有,限制了类的实例化,然后通过静态成员函数返回类的唯一实例,确保在整个程序中只有一个实例被创建和访问。这种模式在需要全局共享的资源、配置信息或对象管理等场景下非常有用。单例模式分为懒汉式和饿汉式: 饿汉式,实例在进入 ma...

© ziqing. 保留部分权利。

纸上得来终觉浅,绝知此事要躬行!