java书单
thinking in java
java并发编程实战
Effective Java
深入理解JVM虚拟机
java性能优化权威指南
JSR133
Google Guava官方教程...
分类:
其他好文 时间:
2014-10-26 16:59:47
阅读次数:
136
1.Futrue
public interface Future //Future 表示异步计算的结果ExecutorService threadPool = Executors.newSingleThreadExecutor();
Future future = threadPool.submit(new Callable() {
public String call() throws Ex...
分类:
编程语言 时间:
2014-10-26 15:40:38
阅读次数:
159
1.CompletionService源码分析
CompletionService内部实现还是维护了一个可阻塞的队列,通过代理设计模式,从而操作队列。
/**
* Creates an ExecutorCompletionService using the supplied
* executor for base task execution and a
...
分类:
编程语言 时间:
2014-10-26 15:38:51
阅读次数:
113
Java并发编程实践 目录并发编程—— ConcurrentHashMap并发编程—— 阻塞队列和生产者-消费者模式并发编程—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程—— Callable和Future并发编程—— CompletionService : Ex...
分类:
编程语言 时间:
2014-10-24 18:43:37
阅读次数:
217
ava 5.0 提供了多种并发容器来改进同步容器的性能。
同步容器是将所有对容器的访问都串行化,以实现他们的线程安全性。代价是严重降低并发行,当多个线程竞争容器的锁时,吞吐量将严重降低。
并发容器是针对多个线程并发访问设计的。 Java 5.0 增加了 ConcurrentHashMap ,用来替代同步且基于散列的 Map ,增加了 CopyOnWriteArrayList ,用于在遍历操作为主要操作的情况下替代同步的 List 。
Java 5.0 还增加了两中心的容器类型...
分类:
编程语言 时间:
2014-10-23 16:27:39
阅读次数:
209
Java 中的同步容器类包括 Vector 和 Hashtable ,二者是早起 JDK 的一部分,此外还包括在 JDK1.2 中添加的一些功能相似的类,这些同步的封装类是由 Collections.synchronizedXxx 等工厂方法创建的的。这些类实现线程安全的方法都是一样的:将他们封装起来,并对每个公有方法都进行同步,使得每次都只有一个线程能访问容器的状态。...
分类:
编程语言 时间:
2014-10-23 00:02:42
阅读次数:
171
Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java
并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。比如在Windows下可以设置共享文件的最大客户端访问个数。
Sem...
分类:
编程语言 时间:
2014-10-22 18:21:49
阅读次数:
291
首先让我简单解释一下所谓"发布"。发布(publish),使对象可以在当前作用域之外的代码中可见,如果该对象被发布,则该对象的非私有域中引用的所有实例同样也会被发布。不仅仅是作为一个field,当一个对象作为一个方法的参数或者在公有方法中作为返回引用,这都属于发布。而相对地,对于错误的发布,我们将其...
分类:
编程语言 时间:
2014-10-21 21:23:16
阅读次数:
347
保证并发安全性的方式有三:不共享、不可变、同步前两种方式相对第三种要简单一些。这一篇不说语言特性和API提供的相关同步机制,主要记录一下关于共享的一些思考。共享(shared),可以简单地认为多个线程可以同时访问某个对象。如果仅仅在单线程内进行访问则不存在同步的问题。保证数据的单线程访问称为线程封闭...
分类:
编程语言 时间:
2014-10-21 21:23:10
阅读次数:
278
"重用"大法好,我们早已习惯重用已设计好的类而不是自己造轮子玩。重用可以节省我们进行开发和测试(测试比我们自己测严谨地多)的时间和其他各种成本。但是,对一个线程安全类进行扩展的时候就需要思考一些问题。比如我们熟知的线程安全类Vector,该类中对所有的公有方法提供了synchronized修饰以保证...
分类:
编程语言 时间:
2014-10-21 21:18:02
阅读次数:
296