![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
Night_Aurora
渲染引擎工程师
展开
-
自旋锁(spin lock)与互斥量(mutex)的比较
下面摘录一些关于C++当中自旋锁(spin lock)与互斥量(mutex)的比较自旋锁是一种非阻塞锁,也就是说,如果某线程需要获取自旋锁,但该锁已经被其他线程占用时,该线程不会被挂起,而是在不断的消耗CPU的时间,不停的试图获取自旋锁。互斥量是阻塞锁,当某线程无法获取互斥量时,该线程会被直接挂起,该线程不再消耗CPU时间,当其他线程释放互斥量后,操作系统会激活那个被挂起的线程,让其投入运行。两种锁适用于不同场景:如果是多核处理器,如果预计线程等待锁的时间很短,短到比线程两次上下文切换时原创 2021-06-10 10:02:11 · 1507 阅读 · 0 评论 -
区分C++的常量指针与指针常量
我们知道const 修饰的变量作为常量来看待, 所谓常量就是赋值后不能被改变的量, const 修饰的变量或指针有时很难区分其类别,在这里推荐一种简单的方法来区分到底是常量指针 还是 指针常量。这里我们先搞清楚 何为常量指针 和 指针常量:常量指针: 指向常量的指针,由于指向的是常量,当用指针解引用来修改被指对象的值时,是无法完成操作的。指针常量: 这个词可以参考 const int 或 int const , 我们说 const int 是整形常量 , 当修饰指针时,我们就说指针常量。首先原创 2020-08-12 15:02:21 · 269 阅读 · 0 评论 -
C++ 并行编程之memory_order
typedef enum memory_order { memory_order_relaxed, // 不对执行顺序做保证 memory_order_acquire, // 本线程中,所有后续的读操作必须在本条原子操作完成后执行 memory_order_release, // 本线程中,所有之前的写操作完成后才能执行本条原子操作 memory...原创 2019-10-14 15:13:46 · 200 阅读 · 0 评论