
无锁编程
wuyue五月
这个作者很懒,什么都没留下…
展开
-
无锁编程实战演练
前段时间研究过一阵子无锁化编程。刚写了几个简单的程序,来验证了下自己学到的一些概念。测试场景:假设有一个应用:现在有一个全局变量,用来计数,再创建10个线程并发执行,每个线程中循环对这个全局变量进行++操作(i++),循环加2000000次。所以很容易知道,这必然会涉及到并发互斥操作。下面通过三种方式来实现这种并发操作。并对比出其在效率上的不同之处。这里先贴上代码,共5个文件:2个用于转载 2015-02-26 11:23:27 · 473 阅读 · 0 评论 -
设计不使用互斥锁的并发数据结构
用于并行计算的多线程数据结构,第 2 部分: 设计不使用互斥锁的并发数据结构本文是讨论多线程结构的两篇系列文章的第二篇,介绍关于实现基于互斥锁的并发链表的设计方法,讨论如何设计不使用互斥锁的并发数据结构。转载地址:http://www.ibm.com/developerworks/cn/aix/library/au-multithreaded_structures2/index.html转载 2015-08-20 09:19:24 · 954 阅读 · 0 评论 -
多线程与并发 概论
对无锁队列的最初兴趣来自梁斌同志的一个英雄帖:http://coderpk.com/。 第一次看到这个题目的时候还不知道CAS,FAA等所谓的“原子操作”,但直觉上感觉,通过对读写操作的性能优化来达到大幅提高队列性能的方法是行不通的,就算读写操作全用汇编来写,也不会和正常的read及 write有数量级上的区别。后来搜索了一下lock free data structure,才知道了关于原子操作的转载 2015-08-16 17:03:43 · 496 阅读 · 0 评论 -
巧夺天工的kfifo
转载地址:http://blog.youkuaiyun.com/linyt/article/details/5764312Linux kernel里面从来就不缺少简洁,优雅和高效的代码,只是我们缺少发现和品味的眼光。在Linux kernel里面,简洁并不表示代码使用神出鬼没的超然技巧,相反,它使用的不过是大家非常熟悉的基础数据结构,但是kernel开发者能从基础的数据结构中,提炼出优美的特性。k转载 2016-04-13 15:39:27 · 323 阅读 · 0 评论 -
linux内核数据结构之kfifo(实现)
转载地址:http://www.cnblogs.com/Anker/p/3481373.html1、前言 最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,转载 2016-04-13 16:34:25 · 1580 阅读 · 0 评论 -
用于并行计算的多线程数据结构,第 1 部分: 设计并发数据结构
转载地址:http://www.ibm.com/developerworks/cn/aix/library/au-multithreaded_structures1/index.html简介现在,您的计算机有四个 CPU 核;并行计算 是最时髦的主题,您急于掌握这种技术。但是,并行编程不只是在随便什么函数和方法中使用互斥锁和条件变量。C++ 开发人员必须掌握的关键技能之一是设计转载 2016-04-13 20:20:56 · 588 阅读 · 0 评论 -
非阻塞同步算法与CAS(Compare and Swap)无锁算法
转载地址:http://www.cnblogs.com/Mainz/p/3546347.html锁(lock)的代价锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。操作系统对转载 2016-07-04 09:11:45 · 833 阅读 · 0 评论 -
双缓存消息队列设计综述
仅从双缓存消息队列的技术角度去分析。使用双缓存方法去实现异步日志是否是比较有效方式,待讨论。双缓冲消息队列-减少锁竞争在网络应用服务器端, 为了性能和防止阻塞, 经常会把逻辑处理和I/O处理分离:I/O网络线程处理I/O事件: 数据包的接收和发送, 连接的建立和维护等.逻辑线程要对收到的数据包进行逻辑处理.通常网络线程和逻辑线程之间是通过数据包队列来交换信息, 简单来说转载 2016-08-08 13:19:55 · 1943 阅读 · 0 评论