ICode9

精准搜索请尝试: 精确搜索
  • 无锁编程:采用不可变类减少锁的使用2019-08-02 19:38:52

    原文链接:http://www.cnblogs.com/Binhua-Liu/p/5573444.html   很多的同学很少使用、或者干脆不了解不可变类(Immutable Class)。直观上很容易认为Immutable类效率不高,或者难以理解他的使用场景。其实不可变类是非常有用的,可以提高并行编程的效率和优化设

  • 高性能无锁队列 Disruptor2019-07-16 19:00:44

    https://juejin.im/post/5b744557518825612a228111

  • 单生产者/单消费者 的 FIFO 无锁队列2019-06-30 17:41:17

      发现 zeromq 的 yqueue_t 模板类,其数据存储理念设计得非常妙。借这一理念,按照 STL 的泛型类 queue 的接口标准,我设计了一个线程安全的 单生产者/单消费者(单线程push/单线程pop) FIFO 队列,以此满足更为广泛的应用。 1. 数据存储理念的结构图 队列的整体结构上,使用链表的方式,将

  • 无锁HASHMAP的原理与实现2019-05-31 21:55:49

    在疫苗:Java HashMap的死循环疫苗:Java HashMap的死循环中,我们看到,java.util.HashMap并不能直接应用于多线程环境。对于多线程环境中应用HashMap,主要有以下几种选择: 使用线程安全的java.util.Hashtable作为替代。 使用java.util.Collections.synchronizedMap方法,将已有的HashMap对象

  • 原子操作实现无锁队列2019-05-19 11:41:42

    关于CAS等原子操作 在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Compare & Set或是 Compare & Swap,现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是 CMPXCHG 汇编指令。有了这个原子操作,我们就可以用其来实现各种无锁(lock free)的数据结构。 这个操

  • 深入理解(7)Java无锁CAS与Unsafe类及其并发包Atomic2019-05-01 10:51:37

    原文:https://blog.csdn.net/javazejian/article/details/72772461 无锁的概念 在谈论无锁概念时,总会关联起乐观派与悲观派,对于乐观派而言,他们认为事情总会往好的方向发展,总是认为坏的情况发生的概率特别小,可以无所顾忌地做事,但对于悲观派而已,他们总会认为发展事态如果不及

  • 无锁编程实战演练2019-04-21 20:44:32

    前段时间研究过一阵子无锁化编程。刚写了几个简单的程序,来验证了下自己学到的一些概念。 測试场景:假设有一个应用:如今有一个全局变量,用来计数,再创建10个线程并发运行,每个线程中循环对这个全局变量进行++操作(i++)。循环加2000000次。 所以非常easy知道,这必定会涉及到并发相互排

  • 《Java并发编程深度学习 - 无锁并行计算法框架》笔记2019-04-13 23:42:49

    第1章 课程介绍 1-1 课程导学 1、课程安排 两个案例: 两个实战案例的架构图:  

  • 关于c/c++中的volatile、内存屏障以及无锁数据结构2019-04-01 17:54:05

    一:先说 volatile,静态乱序        C/C++ 语言中的volatile关键字作用?       1.易变性:volatile告诉编译器,某个变量是易变的,当编译器遇到这个变量的时候,只能从变量的内存地址中读取这个变量,不可以从缓存、寄存器、或者其它任何地方读取。       2.顺序性:两个包含volati

  • 深入理解SPDK 之二: 消息和无锁队列2019-02-14 10:56:24

    并发理论 期望: 随着硬件的线性增加,性能也线性增加; 传统 锁 的优点: 无锁 到有锁 扩展的方便; 锁直接加在共享数据的前面; 缺点:随着系统内线程的增加,数据和临界段的竞争越来越激烈,而且多个线程可能处于不同物理core,频繁竞争导致剧烈的L1 cache 失效。 SPDK的做法:各管各妈;你看我

  • 上篇|说说无锁(Lock-Free)编程那些事2019-01-18 15:56:23

    1. 引言现代计算机,即使很小的智能机亦或者平板电脑,都是一个多核(多CPU)处理设备,如何充分利用多核CPU资源,以达到单机性能的极大化成为我们码农进行软件开发的痛点和难点。在多核服务器中,采用多进程或多线程来并行处理任务,俨然成为了大家性能调优的标准解决方案。多进程(多线程)的并

  • 上篇|说说无锁(Lock-Free)编程那些事2019-01-18 15:56:06

    1. 引言现代计算机,即使很小的智能机亦或者平板电脑,都是一个多核(多CPU)处理设备,如何充分利用多核CPU资源,以达到单机性能的极大化成为我们码农进行软件开发的痛点和难点。在多核服务器中,采用多进程或多线程来并行处理任务,俨然成为了大家性能调优的标准解决方案。多进程(多线程)的并

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有