多线程
紫无之紫
这个作者很懒,什么都没留下…
展开
-
pthread多线程编程整理
转载自pthread多线程编程整理pthread多线程编程整理1 Introduction2 Thread ConceptsThread由下面部分组成: - Thread ID - Stack - Policy - Signal mask - Errno - Thread-Specific Data3 Thread Identificat转载 2016-11-24 14:44:00 · 2794 阅读 · 0 评论 -
无锁数据结构三
无锁数据结构的两大问题实现无锁数据结构最困难的两个问题是ABA问题和内存回收问题。它们之间存在着一定的关联:一般内存回收问题的解决方案,可以作为解决ABA问题的一种只需很少开销或者根本不需额外开销的方法,但也存在一些情况并不可行,如两个链表实现的栈,不断在两个栈间交换节点。标签指针(Tagged pointers)标签指针作为一种规范由IBM引入,旨在解决ABA问题。从某一方面来看,ABA问题的出现转载 2017-11-29 11:39:42 · 484 阅读 · 0 评论 -
无锁数据结构一
lock-free本文对lock-free进行介绍,主要介绍原子性操作,下一篇介绍内存访问控制什么是lock-free 无锁数据结构无锁数据结构的实现主要基于两个方面:原子性操作和内存访问控制方法。下面先记录原子性操作相关知识。原子性操作原子性操作可以简单地分为读写(read and write)、原子性交换操作(read-modify-write,RMW)两部分。原子操作可认为是原创 2017-11-13 17:01:53 · 883 阅读 · 0 评论 -
无锁数据结构二-乱序控制(栅栏)
内存栅栏由于优化会导致对代码的乱序执行,在并发执行时可能带来问题。因此为了并行代码的正确执行,我们需提示处理器对代码优化做一些限制。而这些提示就是内存栅栏(memory barriers),用来对内存访问进行管理。要详细了解内存栅栏原理及产生原因,可参考无锁数据结构(基础篇):内存栅障。每种处理器架构都能提供一组完整的内存栅栏供开发使用,使用这些,我们能建立不同的内存模型。通过内存模型,我们能控制并原创 2017-11-17 17:52:41 · 503 阅读 · 0 评论