- 浏览: 468455 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (146)
- Maven (3)
- Quartz (10)
- Hessian (3)
- JDK (42)
- eclipse (4)
- 设计思想 (6)
- XML (8)
- JavaMail (1)
- Spring (11)
- mina (1)
- HsqlDb (1)
- Cache (2)
- Tool (6)
- 心情 (5)
- JQuery (0)
- Hadoop (5)
- Hbase (3)
- 自动构建 (7)
- JNDI (0)
- 代码赏析 (5)
- Oracle (1)
- Excel (4)
- Effective Java (5)
- JAXB (4)
- fdafasdf (1)
- ccc (0)
- web (3)
- concurrent (1)
- CVS (1)
- eclipse plugin (2)
- Apache (10)
最新评论
-
chxiaowu:
nice!
Quartz实现固定执行次数 -
zxjlwt:
学习了。http://surenpi.com
自定义ClassLoader -
kadlly:
public static final Logger log ...
Hessian 权限认证 -
spring_springmvc:
java程序语言学习教程 地址http://www.zuida ...
Java-Final -
liushuiwuyan:
[img][/img]
设计模式-单例
1. java.util.concurrent.ArrayBlockingQueue
阻塞的Queue,允许多线程操作,这里的put Condition和get Condition分离(使用ReentrantLock),速度比使用单个锁速度快。
这是一个基于数组,先进先出,线程安全的集合类,其特色为可实现指定时间的阻塞读写,并且容量可限制.
2. java.util.concurrent.ReentrantLock
可重入锁,允许指定一个boolean参数,公平锁[FIFO],或者自由竟争.
一般调用newCondition()生成Condition,Condition可以调用await和signal[等待与唤醒]
当然也可以不使用只使用lock与unlock.
3. java.util.concurrent.ReentrantReadWriteLock
读写锁分享,在读多写少的场景可大幅提升读的性能.
4. java.util.concurrent.Future
该接口是用来表示结果是异步线程完成,其中方法提供确认任务是否完成,等待任务完成,检索完成后返回结果.
其经常与ExecutorService一起使用.
5. java.util.concurrent.Executor
一个对象执行提交的Runnable任务,这个接口提供一种方法解耦任务提交,任务执行.[任务调度]
6. java.util.concurrent.ExecutorService
扩展Executor,提供了任务池的功能,提交了任务终止,任务池关闭,批量提交任务,提交Runnable,Callable任务.
7. java.util.concurrent.Executors
工厂方法,返回Executor,ExecutorService,ScheduledExecutorService,ThreadFactory,Callable类定义.
Executors.newCachedThreadPool()
* API:
* 1. 创建一个线程池,根据需要创建新线程,但 将重用先前构造的线程当他们可用。
* 2. 这个线程池会提高性能,如果项目中都是一些执行周期比较短的异步任务.
* 3. 线程超过60秒没有使用,将会被移出缓存,因此这个线程池中没有任务,不会消耗资源
Executors.newScheduledThreadPool(5)
* API:
* 创建一个线程池可以调度任务在给定delay,或者定期执行
8. java.util.concurrent.FutureTask
该类实现Future接口,也实现了Runnable接口,所台可以执行Runnable接口,而这里使用Executors转化为Callable接口
同时也支持Callable接口.调用run()方法开始执行.
这可用于异步执行结果或取消任务的场景.
9. java.util.concurrent.ThreadPoolExecutor
线程池执行类,用来submit Runnable或者callable接口的类,每提交一个都会生成一个FutureTask实例,并调用start方法启动
invokeAll方法会批量调用异常线程,并等待他们都返回了,才返回结果.
10.java.util.concurrent.ScheduledExecutorService
ScheduledThreadPoolExecutor为其实现类execute方法默认为立即执行.当然也可以指定时间间隔循环执行.
11.java.util.concurrent.ScheduledFuture
这个接口主要是扩展了Future,添加了Delayed接口,指定时间延迟.
12.java.util.concurrent.ConcurrentHashMap
线程安全的HashMap实现.主要是对put/get操作使用了segment,key-value锁,而不是锁定整个列表
13.java.util.concurrent.CopyOnWriteArrayList
这是一个线程安全,并且在读操作时无锁的ArrayList. 写操作时使用可重入锁来保证线程安全,每次都会复制一份数组.读
操作不加锁,速度是快,但可能读的是脏数据.
14.java.util.concurrent.CopyOnWriteArraySet
这是基于CopyOnWriteArrayList实现,其唯一不同是不能重复.
15.java.util.concurrent.AtomicInteger
这是一个支持原子操作的Integer类。[实现同样的功能需要实现一个按顺序获取的id,必须在每次获取进行加锁]
这是基于CAS(CPU的原语)实现,简单的说就是由CPU比较内存位置上的值是否为当前值
16.java.util.concurrent.Semphore
这是并发包中提供的用于控制某资源同时被访问的个数的类,例如连接池要控制连接的个数
17.java.util.concurrent.CountDownLatch
这提供一个可用于控制多个线程同时开始某动作的类,其采用方式为减计数的方式,当计数为0时,位于await后的代码才会执行
18.java.util.concurrent.CyclicBarrer
当await数量到达了设定的数量后,才继续往下执行.
19.java.util.concurrent.Condition
这是一个接口,典型的实现有ReentrantLock.提供了一个newCondition方法,以便用户在同一个锁的情况下可以根据不同的情况执行
等待和唤醒
阻塞的Queue,允许多线程操作,这里的put Condition和get Condition分离(使用ReentrantLock),速度比使用单个锁速度快。
这是一个基于数组,先进先出,线程安全的集合类,其特色为可实现指定时间的阻塞读写,并且容量可限制.
2. java.util.concurrent.ReentrantLock
可重入锁,允许指定一个boolean参数,公平锁[FIFO],或者自由竟争.
一般调用newCondition()生成Condition,Condition可以调用await和signal[等待与唤醒]
当然也可以不使用只使用lock与unlock.
3. java.util.concurrent.ReentrantReadWriteLock
读写锁分享,在读多写少的场景可大幅提升读的性能.
4. java.util.concurrent.Future
该接口是用来表示结果是异步线程完成,其中方法提供确认任务是否完成,等待任务完成,检索完成后返回结果.
其经常与ExecutorService一起使用.
5. java.util.concurrent.Executor
一个对象执行提交的Runnable任务,这个接口提供一种方法解耦任务提交,任务执行.[任务调度]
6. java.util.concurrent.ExecutorService
扩展Executor,提供了任务池的功能,提交了任务终止,任务池关闭,批量提交任务,提交Runnable,Callable任务.
7. java.util.concurrent.Executors
工厂方法,返回Executor,ExecutorService,ScheduledExecutorService,ThreadFactory,Callable类定义.
Executors.newCachedThreadPool()
* API:
* 1. 创建一个线程池,根据需要创建新线程,但 将重用先前构造的线程当他们可用。
* 2. 这个线程池会提高性能,如果项目中都是一些执行周期比较短的异步任务.
* 3. 线程超过60秒没有使用,将会被移出缓存,因此这个线程池中没有任务,不会消耗资源
Executors.newScheduledThreadPool(5)
* API:
* 创建一个线程池可以调度任务在给定delay,或者定期执行
8. java.util.concurrent.FutureTask
该类实现Future接口,也实现了Runnable接口,所台可以执行Runnable接口,而这里使用Executors转化为Callable接口
同时也支持Callable接口.调用run()方法开始执行.
这可用于异步执行结果或取消任务的场景.
9. java.util.concurrent.ThreadPoolExecutor
线程池执行类,用来submit Runnable或者callable接口的类,每提交一个都会生成一个FutureTask实例,并调用start方法启动
invokeAll方法会批量调用异常线程,并等待他们都返回了,才返回结果.
10.java.util.concurrent.ScheduledExecutorService
ScheduledThreadPoolExecutor为其实现类execute方法默认为立即执行.当然也可以指定时间间隔循环执行.
11.java.util.concurrent.ScheduledFuture
这个接口主要是扩展了Future,添加了Delayed接口,指定时间延迟.
12.java.util.concurrent.ConcurrentHashMap
线程安全的HashMap实现.主要是对put/get操作使用了segment,key-value锁,而不是锁定整个列表
13.java.util.concurrent.CopyOnWriteArrayList
这是一个线程安全,并且在读操作时无锁的ArrayList. 写操作时使用可重入锁来保证线程安全,每次都会复制一份数组.读
操作不加锁,速度是快,但可能读的是脏数据.
14.java.util.concurrent.CopyOnWriteArraySet
这是基于CopyOnWriteArrayList实现,其唯一不同是不能重复.
15.java.util.concurrent.AtomicInteger
这是一个支持原子操作的Integer类。[实现同样的功能需要实现一个按顺序获取的id,必须在每次获取进行加锁]
这是基于CAS(CPU的原语)实现,简单的说就是由CPU比较内存位置上的值是否为当前值
16.java.util.concurrent.Semphore
这是并发包中提供的用于控制某资源同时被访问的个数的类,例如连接池要控制连接的个数
17.java.util.concurrent.CountDownLatch
这提供一个可用于控制多个线程同时开始某动作的类,其采用方式为减计数的方式,当计数为0时,位于await后的代码才会执行
18.java.util.concurrent.CyclicBarrer
当await数量到达了设定的数量后,才继续往下执行.
19.java.util.concurrent.Condition
这是一个接口,典型的实现有ReentrantLock.提供了一个newCondition方法,以便用户在同一个锁的情况下可以根据不同的情况执行
等待和唤醒
发表评论
-
Java Application Cache
2016-09-27 19:25 884Application Cache is used very ... -
Java 字符串分词
2015-01-02 14:43 1749在Java的世界里有个类型 ... -
jdk 1.6 新特性,集成Groovy, 性能很差
2014-04-02 14:27 1277性能都是相对的,如果调用量不是很大的话,可以忽略,毕竟使用为主 ... -
Fake Code easy implements
2014-04-01 15:41 1028package org.miniframe.modules ... -
JDK regex 用法及用途
2014-03-31 15:48 1215查找 Boolean flag = pattern.mat ... -
生产者消费者(四)
2014-03-04 12:32 1148需求: 多个生产者不断的生产产品,多个消费者不断的消费产品,仓 ... -
生产者消费者(三)
2014-03-04 10:59 961需求: 多个生产者不断的生产产品,多个消费者不断的消费产品,仓 ... -
生产者消费者(二)
2014-03-03 15:40 695需求: 多个生产者不断的生产产品,多个消费者不断的消费产品,仓 ... -
生产者消费者模式(一)
2014-02-28 14:30 1031需求: 多个生产者不断的生产产品,多个消费者不断的消费产品,仓 ... -
查看Class文件使用的JDK版本
2013-10-30 14:17 1116由于JDK一般是向下兼容的,所以有时候本地的JDK版本比类库的 ... -
Java源代码转码
2012-12-20 17:22 1323现在中国的项目很多,编码无非是UTF-8,GBK,GB2312 ... -
Tomcat集成OSGI,并通过JNDI开放Web调用
2012-12-03 11:22 3135Tomcat集成OSGi,首先要选择OSGI服务器,我这里采用 ... -
JDK的Logging
2012-11-07 15:49 1685jdk自带有一个log日志,对于一般的使用,仅够了. 代码如下 ... -
java.util.*
2012-11-06 14:23 1378java.util 工具包,灰常的有用,有机会一定要研读源码。 ... -
java.util.rt.*
2012-10-31 13:51 11131. java.util.HashMap 散列表,主要是以离散 ... -
巧秒设计方法,不返回null
2016-09-27 19:32 723/** * {@inheritDoc} * ... -
java doc 代码文档
2012-07-13 13:58 1330对于代码规范不解释了,网上很多。 在编写代码的时候,有一点灰 ... -
接口与抽象类
2012-07-11 16:53 11241. 接口设计必谨慎,除非业务变更,否则打死不能动接口。[不变 ... -
JVM优化机制好诡异
2012-04-20 08:43 1467long i[] = new long[1000000]; ... -
JVM优化机制好诡异
2016-09-27 19:32 562long i[] = new long[100000 ...
相关推荐
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
"java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError" 是一个典型的错误提示,它表明在并发执行过程中遇到了内存不足的问题。下面我们将深入探讨这个问题的原因、影响以及如何解决。 内存溢出...
Java.util.concurrent是Java 5.0引入的一个重要包,它为多线程编程提供了一组高级并发工具。这个包的设计者是Doug Lea,它的出现是JSR-166的一部分,也被称作Tiger更新。Java.util.concurrent的引入是为了解决传统...
Java.util.concurrent(JUC)是Java平台中的一个核心包,专门用于处理多线程并发问题。这个包包含了大量的工具类和接口,极大地简化了并发编程的复杂性,提高了程序的性能和可伸缩性。本测试源文件主要是针对JUC并发...
### Java并发工具包 `java.util.concurrent` 知识点详解 #### 一、引言 随着多核处理器的普及和应用程序复杂度的增加,多线程编程成为了现代软件开发不可或缺的一部分。为了简化并发编程的复杂性,Java 5 引入了 `...
java.util.concurrent总体概览图。 收取资源分3分。需要的同学可以下载一下。 java.util.concurrent主要包括5个部分executor,colletions,locks,atomic,tools。 该图详细的列举了并发包下面的结构,包含所有接口和...
java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
### Java.util.concurrent.Synchronizer框架详解 #### 一、引言与背景 随着Java技术的发展,多线程编程成为了一项重要的技术需求。为了更好地支持并发编程,Java平台在J2SE 1.5版本中引入了`java.util.concurrent`...
一个高性能的Java线程库,该库是 JDK 1.5 中的 java.util.concurrent 包的补充,可用于基于并发消息机制的应用。该类库不提供远程的消息功能,其设计的宗旨是实现一个内存中的消息传递机制. 主要特点有: * All ...
"JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用" JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用是Java多线程编程中的一种重要概念。随着多线程编程的普及,线程池的使用变得...
Java并发工具包(java.util.concurrent)是Java平台上用于高效、安全地处理多线程编程的重要组件。这个包包含了丰富的并发工具类,旨在帮助开发者构建高度并发的程序,提高程序的性能和可伸缩性。本资源是该工具包的...
标题中提到了“java.util.concurrent.uml.pdf”,这表明文件是一份Java并发编程工具包java.util.concurrent的UML(统一建模语言)类结构图的PDF格式文件。UML图能够帮助开发者理解Java并发包中的类、接口及其关系,...
`java.util.concurrent` 包(简称JUC)是Java提供的一个强大的并发工具包,它提供了丰富的并发组件,如线程池、并发容器、锁和同步机制等,极大地简化了并发编程的复杂性。本篇文章将深入探讨如何使用`java.util....
如何启动:以win7系统为例,最好jdk8 1.打开cmd,cd到jdk的path,本机是:cd C:\Java\jdk6\bin ...java -cp D:\javaConcurrentAnimated.jar vgrazi.concurrent.samples.launcher.ConcurrentExampleLauncher
《Java Util Concurrent中文版》是Java并发编程领域的重要参考资料,主要涵盖了Java标准库中的`java.util.concurrent`包及其相关类和接口。这个包是Java多线程编程的核心,提供了高效、安全的并发工具,帮助开发者...
java.util.concurrent 多线程框架 java.util.concurrent 多线程框架是 Java 语言中用于多线程编程的库。该库提供了多种线程池实现、并发集合、同步器、lock 等多种机制,以便开发者更方便地编写高效、可靠的多线程...
AQS(AbstractQueuedSynchronizer)是Java.util.concurrent包中同步器的基础框架,它的核心设计思想与实现方法在Doug Lea先生的这篇论文中有详细的介绍。论文详细阐述了AQS框架的原理、设计、实现、应用以及性能等...
然而,现代的多线程编程通常更倾向于使用并发集合,如`java.util.concurrent.CopyOnWriteArrayList`,它在读多写少的场景下有更好的性能。 6. **编程高手箴言** - 虽然`Vector`提供了线程安全,但其性能可能不满足...