C++
wzq2009
这个作者很懒,什么都没留下…
展开
-
Yet another implementation of a lock-free circular array queue
1. IntroductionImproving applications with high-performance constraints has an obvious choice nowadays: Multithreading. Threads have been around for quite a long time. In the old days, when most computers had only 1 processor, threads were mainly used as转载 2020-07-25 17:40:46 · 1736 阅读 · 0 评论 -
lock free queue的实现
#ifndef __ARRAY_LOCK_FREE_QUEUE_IMPL_MULTIPLE_PRODUCER_H__#define __ARRAY_LOCK_FREE_QUEUE_IMPL_MULTIPLE_PRODUCER_H__#include "atomic_ops.h"#include <assert.h> // assert()#include <sched.h> // sched_yield()#include "logger_factory.h"#incl原创 2020-07-25 16:57:12 · 500 阅读 · 0 评论 -
理解 C++ 的 Memory Order
为什么需要 Memory Order如果不使用任何同步机制(例如 mutex 或 atomic),在多线程中读写同一个变量,那么,程序的结果是难以预料的。简单来说,编译器以及 CPU 的一些行为,会影响到程序的执行结果:即使是简单的语句,C++ 也不保证是原子操作。CPU 可能会调整指令的执行顺序。在 CPU cache 的影响下,一个 CPU 执行了某个指令,不会立即被其它 CPU 看见。原子操作说的是,一个操作的状态要么就是未执行,要么就是已完成,不会看见中间状态。例如,在 C++11 中原创 2020-05-24 22:42:28 · 516 阅读 · 0 评论 -
C++/作用域
https://zh.wikibooks.org/wiki/C%2B%2B/%E4%BD%9C%E7%94%A8%E5%9F%9F#%E5%85%A8%E5%B1%80%E4%BD%9C%E7%94%A8%E5%9F%9F维基教科书,自由的教学读本< C++跳到导航跳到搜索作用域(scope)是名字(name)与实体(entity)的绑定(binding)保持有效的那部分计算...转载 2019-02-11 15:53:01 · 3931 阅读 · 0 评论 -
Github上的几个C++开源项目
1. FreeNOSlordsergioinspa/FreeNOS · GitHub这是我在大学的时候,接触完整学习的第一个开源的C++项目,当时简直是,各种惊叹,里面有太多值得学习的地方。这是一个用C++实现的微内核的操作系统,各种宏内核中的服务作为一个独立的services在微内核中,基于消息的通信方式,这点其实跟mac内核中的mach那部分机制相似。除了是一个操作系统的实现,...转载 2019-09-04 21:30:42 · 286 阅读 · 0 评论