- 浏览: 272112 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (298)
- 工作感悟 (6)
- java基础 (23)
- 计算机硬件知识 (1)
- 计算机网络知识 (2)
- Struts (3)
- Srping (4)
- hibernate (0)
- ibatis (0)
- webservice (4)
- Thread (22)
- maven (5)
- ubuntu/linux/centos/redhat (46)
- SSO (1)
- ESB (0)
- 工作流 (0)
- oracle (15)
- 云计算 (1)
- hadoop (1)
- nosql (0)
- mysql (3)
- sqlserver (0)
- jquery (0)
- 分布式 (3)
- 集群 (0)
- 设计模式 (2)
- EJB (0)
- map (0)
- cache (5)
- Niginx+varnish+squid+Ats (14)
- Apache (0)
- 工作/职业规划 (0)
- Scala & Groovy (1)
- English (4)
- 数据结构/算法 (6)
- 开发工具 (5)
- 测试 (2)
- Exception (0)
- 定时器 (3)
- j2ee (2)
- 部署 (1)
- Openssl (1)
- 操作系统 (3)
- kvm (13)
- libvirt (5)
- PostgreSql (5)
- 虚拟化 (3)
- 概念理解 (1)
- virt-manager (1)
- RESTful (3)
- 其它 (4)
- ssh2 (14)
- windows (1)
- 房产 (2)
- svn (1)
- 手机 (1)
- ant (1)
- flume (2)
- sqoop (1)
- fastdfs (5)
- log4j (1)
- SPDY (1)
- mongodb (2)
- MQ (2)
- Mina (1)
- dubbo (4)
- PMP (1)
- Webshpere (2)
- jvm (1)
- Btrace (1)
- zookeeper (7)
- UML (1)
- spring cloud (6)
- spring boot (5)
- storm (0)
- 软件管理 (1)
- elasticsearch (1)
- 协议 (2)
- docker (1)
- 性能 (2)
- 安全 (1)
- 代码规范 (1)
- mqtt (1)
- lombok (1)
- 车联网 (1)
- kafka (1)
最新评论
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 的价值所在就在于它是在硬件级别
实现的,速度那是相当的快。
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通过Executors提供四种线程池
2017-09-27 10:21 491Java通过Executors提供四种线程池,分别为: new ... -
Java多线程之Semaphore
2013-07-17 16:12 599import java.util.ArrayL ... -
ThreadLocal的介绍(利用变量副本实现多线程访问同一变量)
2013-07-17 14:20 823早在Java 1.2推出之时,Ja ... -
ThreadGroup其实比ExecutorService更好
2013-07-17 13:32 723用java做抓取的时候免不了要用到多线程的了,因为要同时抓取多 ... -
Java多线程同步器
2013-07-12 17:00 882CyclcBarrier 在实际应用中,有时候需要多个线程 ... -
Java Thread.interrupt 害人! 中断JAVA线程
2013-07-12 16:37 793程序是很简易的。然而,在编程人员面前,多线程呈现出了一组新的难 ... -
Java多线程学习——Condition的使用
2013-07-12 14:36 869Condition 将 Object 监视器方法(wait、n ... -
java多线程设计wait
2013-07-12 14:30 724在Java中,这个机制的实 ... -
Monitor
2013-07-12 10:44 15601. 什么是Monitor? Monitor其实是一 ... -
处理 子线程的返回值
2013-07-08 14:19 884package com.jimmy.Thread.Conc ... -
ExecutorService的execute和submit方法
2013-07-05 17:21 1059因为之前一直是用的exec ... -
Exchanger-兄弟线程的信息交换
2013-07-05 16:23 714如果两个线程在运行过程中需要交换彼此的信息,比如一个数据或者使 ... -
lockInterruptibly 和lock的区别
2013-06-26 16:36 917lockInterruptibly 与 lock比较区别在于 ... -
慎重使用volatile关键字
2013-06-26 11:10 763volatile关键字相信了解Java多线程的读者都很清楚它的 ... -
对synchronized(this)的一些理解
2013-06-26 10:18 697一、当两个并发线程访问同一个对象object中的这个synch ... -
java中的lock和synchronized区别
2013-06-26 10:02 6081、ReentrantLock 拥有Synchronized相 ... -
线程sleep,join,yield的区别
2013-06-21 17:37 5381.sleep() 使当前线程(即调用该方法的线程)暂停执行 ... -
初学Java多线程:慎重使用volatile关键字
2013-02-25 15:18 710学习Java多线程中会遇到使用volatile关键字的情况。v ... -
java之yield(),sleep(),wait()区别详解-备忘笔记
2013-02-25 14:32 6571、sleep() 使当前线程(即调用该方法的线程)暂停执行 ... -
Java Thread join() 的用法
2013-02-25 13:24 602Java Thread中, join() 方法主要是让调用改方 ...
相关推荐
Amino Java类库将提供优化后的并发线程组件,适用于JDK6.0及其以后的版本。Amino Java类库将涉及以下四个方面的内容: * 数据结构:Amino将提供一套免锁的集合类,如数组、树、图等。 * 并行模式:Amino将为应用...
无锁并行框架Amino,也被称为Concurrent Building Blocks,是一种高效、低延迟的并行编程工具,旨在帮助开发者在多核处理器环境下构建高度并发的应用程序。无锁算法是其核心,这种算法避免了传统的互斥锁带来的性能...
#### AminoJava类库:优化并发线程组件 AminoJava类库为JDK6.0及以上版本提供了优化的并发组件,主要包括: 1. **数据结构**:提供了一系列无锁的集合类,如队列、列表、堆栈等,这些数据结构通过免锁算法实现了...
本案例通过 Java 多线程技术和 Amino 并发组件实现了一个简单的十字路口交通模拟程序。该程序不仅展示了如何有效地利用多线程技术解决复杂的并发问题,还提供了对交通信号灯控制系统的深入理解。通过对程序的设计、...