美文网首页
Lock-Free / Lockless 相关术语

Lock-Free / Lockless 相关术语

作者: 阿群1986 | 来源:发表于2019-07-23 16:39 被阅读0次

Boost.Lockfree 扩展的 C++ 非标准库

#include <boost/lockfree/queue.hpp>
#include <boost/lockfree/spsc_queue.hpp>

#include <boost/lockfree/stack.hpp>

#include <boost/atomic.hpp>

C++ 新标准 std::atomic数据结构类, 支持多线程并发读写

术语 atomic operations -- 指特定操作(内存读写访问)不允许被分割
参见最新的 C++11 atomic library standard

std::atomic<>::is_lock_free()
std::atomic<>::compare_exchange_weak();
std::atomic<>::compare_exchange_strong();
/* 定义atomic<int>类型的全局变量 X 和 Y: */
std::atomic<int> X(0);
std::atomic<int> Y(0);

int r1, r2;

void thread1()
{
    X.store(1);
    r1 = Y.load();
}

void thread2()
{
    Y.store(1);
    r2 = X.load();
}

1.术语 memory barriers

Howells 和 McKenney’s 在Linux内核中实现的内存屏障,参见网址:
http://www.kernel.org/doc/Documentation/memory-barriers.txt

2.术语 ABA Problem

参见维基百科词条 http://en.wikipedia.org/wiki/ABA_problem
多线程并发操作时,必须设法避免ABA问题

3.术语CAS

参见维基百科词条 https://en.wikipedia.org/wiki/Compare-and-swap

4.术语RMW

术语RMW和术语CAS也可以参考博客文章《An Introduction to Lock-Free Programming》,网址: https://preshing.com/20120612/an-introduction-to-lock-free-programming/

  • Atomic Read-Modify-Write Operations
  • Compare-And-Swap 循环处理

另外可参考 Geoff Langdale的文章《无锁式编程(Lock-Free Programming)》, 网址: https://www.cs.cmu.edu/~410-s05/lectures/L31_LockFree.pdf

其他术语

术语RCU = Read-Copy Update是Linux内核中定义的内存块并发读写防护工具. 参见维基百科词条 https://en.wikipedia.org/wiki/Read-copy-update

术语SPSC 和术语 MPMC

  • SPSC = Single-Producer / Single-Consumer
    双线程结构:单一生产者+单一消费者
  • MPMC = many-Producer / many-Consumer
    多线程结构:同时存在多个生产者+多个消费者

术语 sequential consistency

多线程并发乱序处理一组有序排列的数据,输出的结果中前后顺序可能被打乱,与原始顺序不一致。。。

相关文章

  • Lock-Free / Lockless 相关术语

    Boost.Lockfree 扩展的 C++ 非标准库 Boost.Lockfree样例代码:https://ww...

  • 相关术语

    bit:比特,或者位1Byte=8b:也就是说一个字节等于8位1KB=1024Byte个字节KB 1KB=1024...

  • BGP相关术语

    术语含义IGP: Interior Gateway Protocol 内部网关协议,主要作用是发现和计算自治域内的...

  • 编程相关术语

    运维 PV (page view)即页面浏览量,来自浏览器的一次html内容请求会被看作一个PV,逐渐累计成为PV...

  • URL相关术语

    URL(Uniform Resource Locator):统一资源定位符,俗称网址、链接示例: 协议(proto...

  • 摄影相关术语

    自从买了索尼α6000之后,一直没有认真地去学,只是平时出门玩带上去拍,很多参数都不懂,正好现在有空,打算先把摄影...

  • Linux 相关术语

    Linux (Linuxis not unix)是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX...

  • 广告相关术语

    OTV OTV即Online TV,所以OTV广告是线上视频的广告,具体可以是贴片广告、插播广告、创可贴广告等这是...

  • 音乐术语相关

    1.accelerando 2.adagio 3.andante 4.Crescendo 5.diminuendo...

  • 音乐术语相关

    1.ac/ce/le/ran/do 2. a/da/gio或a/da/gi/o 3. an/dan/te 4. C...

网友评论

      本文标题:Lock-Free / Lockless 相关术语

      本文链接:https://www.haomeiwen.com/subject/jjjalctx.html