文档详情

Java并发编程实践-教程-04章.pdf

发布:2019-06-26约3.64万字共21页下载文档
文本预览下载声明
第 4 章 使用开源软件 Amino 构建并发应用程序 第 4 章 使用开源软件构建并发应用程序 1 4.1 开源软件Amino介绍2 4.2 无锁(Lock-Free)数据结构3 4.3 应用Amino提供的数据结构6 4.3.1 简单集合6 4.3.2 树11 4.3.3 图13 4.4 Amino使用的模式和调度算法14 4.5 Amino的简单使用17 参考资料: 20 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。 在实际的并发线程应用程序中,常常会用到数组、树、图、集合等数据结构,而这些结 构也涉及到并发线程所遇到的安全问题。采用 Amino 组件可以很方便地实现线程安全的数 据结构。本章将介绍 Amino 组件在 Java 多线程中的使用。 4.1 开源软件Amino 介绍 Amino是Apache旗下的开源软件。读者可以访问/得到其 最新版本。面向并发编程,它有以下特点: 1)可操作性和良好的伸缩性 2 )跨平台性 3 )无论在 Java、C++或其他流行语言中,编程风格一致 4 )适用于多核的各种操作系统 5 )可以进行并发编程正确性的测试 本章将介绍 Amino 的Java 版。Amino Java 类库将提供优化后的并发线程组件,适用于 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 等 b. 处理树和图的方法:如组件连接,树生成,最短路径,图的着色等 4 )原子和 STM (软件事务内存模型) Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。 下面的程序可以简单地演示使用 Amino 的例子: // LogServerGood.java package org.amino.logserver; import org.amino.ds.lockfree.LockFreeQueue; public class LogServerGood { /*Standard Queue interface*/ private QueueString queue; public LogServerGood() throws IOException { /*Amino components are compatib
显示全部
相似文档