`

并发线程组件 Amino

 
阅读更多
Amino CBB (Concurrent Building Blocks) 类库将提供优化后的并发线程组件,适用于JDK6.0 及其以后的版本。

Amino Java 类库将涉及下面四个方面的内容:

1) 数据结构
该组件将提供一套免锁的集合类。因为这些数据结构采用免锁的运算法则来生成,所
以,它们将拥有基本的免锁组件的特性,如可以避免不同类型的死锁,不同类型的线程初始
化顺序等。
2) 并行模式
Amino 将为应用程序提供一个或几个大家熟知的并行计算模式。采用这些并行模式可
以使开发者起到事半功倍的效果,这些模式包括 Master-Worker、Map-reduce、Divide and
conquer, Pipeline 等,线程调度程序可以与这些模式类协同工作,提供了开发效率。
3) 并行计算中的一般功能
Amino 将为应用程序提供并行计算中常用的方法,例如:
a. String、Sequence  和Array  的处理方面。如Sort、Search、Merge、Rank、Compare、
Reverse、 Shuffle、Rotate 和Median 等
4)原子和STM(软件事务内存模型)

--------------------------------
在Amino 类库中,主要算法将使用锁无关的(Lock-Free)的数据结构。

原语Compare-and-swap(CAS)  是实现锁无关数据结构的通用原语。CAS  可以原子
地比较一个内存位置的内容及一个期望值,如果两者相同,则用一个指定值取替这个内存位
罝里的内容,并且提供结果指示这个操作是否成功。

CAS 操作过程是:当处理器要更新一个内存位置的值的时候,它首
先将目前内存位置的值与它所知道的修改前的值进行对比(要知道在多处理的时候,你要更
新的内存位置上的值有可能被其他处理更新过,而你全然不知),如果内存位置目前的值与
期望的原值相同(说明没有被其他处理更新过),那么就将新的值写入内存位置;而如果不
同(说明有其他处理在我不知情的情况下改过这的值咯),那么就什么也不做,不写入新的
值(现在最新的做法是定义内存值的版本号,根据版本号的改变来判断内存值是否被修改,
一般情况下,比较内存值的做法已经满足要求了)。CAS 的价值所在就在于它是在硬件级别
实现的,速度那是相当的快。
分享到:
评论

相关推荐

    Java并发编程之——Amino框架

    Amino框架是Java并发编程的一个工具,旨在简化多线程编程,提高程序的效率和可维护性。本篇文章将深入探讨Amino框架的核心概念、功能以及如何在实际项目中应用。 首先,Amino框架提供了一种高级别的抽象,使得...

    Java并发编程实践.pdf

    Amino Java类库将提供优化后的并发线程组件,适用于JDK6.0及其以后的版本。Amino Java类库将涉及以下四个方面的内容: * 数据结构:Amino将提供一套免锁的集合类,如数组、树、图等。 * 并行模式:Amino将为应用...

    无锁并行框架Amino -- Concurrent Building Blocks

    无锁并行框架Amino,也被称为Concurrent Building Blocks,是一种高效、低延迟的并行编程工具,旨在帮助开发者在多核处理器环境下构建高度并发的应用程序。无锁算法是其核心,这种算法避免了传统的互斥锁带来的性能...

    Java并发编程实践-电子书-04章

    #### AminoJava类库:优化并发线程组件 AminoJava类库为JDK6.0及以上版本提供了优化的并发组件,主要包括: 1. **数据结构**:提供了一系列无锁的集合类,如队列、列表、堆栈等,这些数据结构通过免锁算法实现了...

    Amino 框架所有源码

    该组件将提供一套免锁的集合类(LockFreeVector、LockFreeList、...因为这些数据结构采用免锁的运算法则来生成,所以,它们将拥有基本的免锁组件的特性,如可以避免不同类型的死锁,不同类型的线程初始化顺序等。

    Amino 框架

    该组件将提供一套免锁的集合类(LockFreeVector、LockFreeList、...因为这些数据结构采用免锁的运算法则来生成,所以,它们将拥有基本的免锁组件的特性,如可以避免不同类型的死锁,不同类型的线程初始化顺序等。

    十字路口交通模拟程序设计分析(JAVA)

    本案例通过 Java 多线程技术和 Amino 并发组件实现了一个简单的十字路口交通模拟程序。该程序不仅展示了如何有效地利用多线程技术解决复杂的并发问题,还提供了对交通信号灯控制系统的深入理解。通过对程序的设计、...

    PyPI 官网下载 | Amino.py-1.1.3.tar.gz

    在Python中,库的源代码通常被组织成一个或多个.py文件,这些文件包含了Python代码,定义了函数、类和其他可重用的代码组件。 "Amino.py"这个名字暗示这个库可能是为了与Amino应用或服务进行交互而设计的。Amino...

    java并发编程1-9

    java并发编程1-9,可解压,并发编程必看资料。 1 Java 并发编程实践基础 ...4 使用开源软件 Amino 构建并发应用程序 5 数据冲突及诊断工具MTRAT 6 死锁 7 显示锁 ReentrantLock 8 原子变量与非阻塞算法 9 Java 内存模型

    Amino.py-1.2.13-py3-none-any.whl.zip

    通过pip工具,开发者和用户可以方便地管理依赖,确保项目所需的所有组件都已正确安装。 Amino.py库可能是一个针对Amino社区的API接口库,允许Python开发者轻松地与Amino社区的服务器进行交互,如创建、编辑和管理...

    Python库 | Amino_new.py-4.3.tar.gz

    Amino_new库可能包含以下组件: 1. 模块(Modules):Python代码文件,通常以.py结尾,包含一组相关函数和类。 2. 类(Classes):面向对象编程的核心,定义了一组相关属性和方法。 3. 函数(Functions):可重用的...

    Amino.py-1.2.9-py3-none-any.whl.zip

    标题"Amino.py-1.2.9-py3-none-any.whl.zip"表明这是一个Python相关的软件包,且已经过压缩处理。"Amino.py"可能是该软件包的主要模块或库,版本号为1.2.9,适用于Python 3解释器,而".whl"后缀则表示这是一个Python...

    Amino.py-1.1.3-py3-none-any.whl.zip

    该文件中可能还包含了“使用说明.txt”这一重要组件。对于用户来说,这样的文档是不可或缺的,因为它提供了详细的安装指南和使用方法。在安装过程中,用户可能会遇到各种问题,如环境配置错误、依赖包缺失等,而使用...

    Amino.py-1.2.10-py3-none-any.whl.zip

    此外,对于包含C扩展或其他本地化组件的Python库,Wheel文件可以确保所有依赖项都得到正确处理。 总的来说,"Amino.py-1.2.10-py3-none-any.whl.zip"是一个Python库的压缩包,包含了预编译的二进制文件,用户可以...

    Amino Live CSS Editor-4.0.6.zip

    名称:Amino Live CSS Editor ---------------------------------------- 版本:4.0.6 作者:https://aminoeditor.com/ 分类:开发者工具 ---------------------------------------- 概述:使用实时CSS编辑器Amino...

    Python库 | amino-13.0.0a8.tar.gz

    在本文中,我们将深入探讨名为"amino-13.0.0a8"的Python库,它是Python开发环境中的一个组件,特别适用于后端开发。 标题中的"amino-13.0.0a8.tar.gz"表明这是一款Python库的压缩包,版本号为13.0.0的预发布版α8,...

    Amino.py-1.1.1-py3-none-any.whl.zip

    标题中的"Amino.py-1.1.1-py3-none-any.whl.zip"是一个Python软件包的压缩文件,其中包含了名为"Amino.py"的库在版本1.1.1下的可分发文件。".whl"是Python的Wheel格式,它是预编译的Python软件包,用于简化安装过程...

Global site tag (gtag.js) - Google Analytics