并发编程
ZWFGOGO
这个作者很懒,什么都没留下…
展开
-
并行无锁数据结构设计
转自:http://www.ibm.com/developerworks/cn/aix/library/au-multithreaded_structures2/#list15本文是本系列的最后一篇,讨论两个主题:关于实现基于互斥锁的并发链表的设计方法和设计不使用互斥锁的并发数据结构。对于后一个主题,我选择实现一个并发堆栈并解释设计这种数据结构涉及的一些问题。用 C++ 设计独立于平台的不转载 2017-06-21 20:39:57 · 575 阅读 · 0 评论 -
pthread_key_t和pthread_key_create()详解
文章来源自pthread_key_t和pthread_key_create()详解下面说一下线程中特有的线程存储, Thread Specific Data 。线程存储有什么用了?他是什么意思了?大家都知道,在多线程程序中,所有线程共享程序中的变量。现在有一全局变量,所有线程都可以使用它,改变它的值。而如果每个线程希望能单独拥有它,那么就需要使用线程存储了。表面上看起来这是一个转载 2017-09-01 16:29:39 · 1016 阅读 · 1 评论 -
Pthreads并行编程之spin lock与mutex性能对比分析
来自: www.parallellabs.comPthreads并行编程之spin lock与mutex性能对比分析POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临转载 2017-09-01 16:58:25 · 354 阅读 · 0 评论 -
原子操作和竞争
转自InfoQ中文站原子性和原子操作计算机操作最重要的构成单位是原子操作。这里的原子跟物理上说的原子没有任何关系,而是起源于单词atom,也就是希腊语“ἄτομος”(意为不可见的)。原子操作是一种不可再细分的操作,或者在系统中其他处理器看来是不可再分了。为了说明为什么原子操作很重要,考虑两个处理器以几乎相同的方式增加一个计数器,翻译成C语言就是counter++,此时会发生什么:转载 2017-09-01 17:48:28 · 595 阅读 · 0 评论 -
从cpu和内存来理解为什么数组比链表查询快
一个常见的编程问题: 遍历同样大小的数组和链表, 哪个比较快? 如果按照大学教科书上的算法分析方法,你会得出结论,这2者一样快, 因为时间复杂度都是 O(n)。 但是在实践中, 这2者却有极大的差异。 通过下面的分析你会发现, 其实数组比链表要快很多。 首先介绍一个概念:memory hierarchy (存储层次结构),电脑中存在多种不同的存储器,如下表CPU 寄存器 – immediate...转载 2018-04-24 10:55:47 · 561 阅读 · 0 评论