接上文《深入浅出Java并发包—锁机制(二) 》 由锁衍生的下一个对象是条件变量,这个对象的存在很大程度上是为了解决Object.wait/notify/notifyAll难以使用的问题。 条件(也称为条件队列 或条件变量)为线程提供了一个含义,以便在某个状态条件现在可能为 true 的另一个线程通
分类:
编程语言 时间:
2016-02-24 19:06:43
阅读次数:
304
接上文《深入浅出Java并发包—锁机制(一) 》 2、Sync.FairSync.TryAcquire(公平锁) 我们直接来看代码 protected final boolean tryAcquire(int acquires) { final Thread current = Thread.cur
分类:
编程语言 时间:
2016-02-24 18:57:45
阅读次数:
263
接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。
Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿...
分类:
编程语言 时间:
2016-02-05 19:26:28
阅读次数:
233
前言对于ThreadLocal、Volatile、synchronized、Atomic这四个关键字,我想一提及到大家肯定都想到的是解决在多线程并发环境下资源的共享问题,但是要细说每一个的特点、区别、应用场景、内部实现等,却可能模糊不清,说不出个所以然来,所以,本文就对这几个关键字做一些作用、特点、实现上的讲解。1、Atomic作用对于原子操作类,Java的concurrent并发包中主要为我们提供...
分类:
其他好文 时间:
2016-01-21 10:42:59
阅读次数:
192
Lock 的简介及使用 Lock是java 1.5中引入的线程同步工具,它主要用于多线程下共享资源的控制。本质上Lock仅仅是一个接口(位于源码包中的java\util\concurrent\locks中),它包含以下方法//尝试获取锁,获取成功则返回,否则阻塞当前线程 void lock(); /...
分类:
编程语言 时间:
2015-11-16 14:04:17
阅读次数:
163
Java 7的并发包中推出了Phaser,其功能跟CyclicBarrier和CountDownLatch有些重叠,但是提供了更灵活的用法,例如支持动态调整注册任务的数量等。本文在Phaser自带的示例代码基础上进行一下简单的分析。注册(Registration) Phaser支持通过registe...
分类:
编程语言 时间:
2015-10-22 21:10:37
阅读次数:
265
Guava中包含了Google的一些核心类库:比如集合,缓存,并发包,常用注解,字符串处理,I/O等等。这些工具类被谷歌的工程师们经常用到。 ???? 但是通过查阅文档不是一个有效的学习类库的方式。这儿,...
分类:
其他好文 时间:
2015-09-29 19:10:24
阅读次数:
168
java线程安全总结(二)请看http://www.iteye.com/topic/808550 最近想将java基础的一些东西都整理整理,写下来,这是对知识的总结,也是一种乐趣。已经拟好了提纲,大概分为这几个主题:java线程安全,java垃圾收集,java并发包详细介绍,java profile...
分类:
编程语言 时间:
2015-09-23 16:21:39
阅读次数:
263
1.Java集合框架是什么?说出一些集合框架的优点?
每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点如下:...
分类:
编程语言 时间:
2015-08-18 19:41:21
阅读次数:
220
一次聊天,谈到了死锁的解决、可重入锁等等,突然发现这些离自己很远,只有一些读书时的概念涌入脑海,但各自的应用场景怎么都无法想出。痛定思痛,决定看看concurrent包里涉及并发的类及各自的应用场景。第一类:原子操作类的atomic包,里面包含了1)布尔类型的AtomicBoolean2)整型Ato...
分类:
编程语言 时间:
2015-08-11 13:34:48
阅读次数:
205