Java集合框架中的Map类型的数据结构是非线程安全,在多线程环境中使用时需要手动进行线程同步。因此在java.util.concurrent包中提供了一个线程安全版本的Map类型数据结构:ConcurrentMap。本篇文章主要关注ConcurrentMap接口以及它的Hash版本的实现 ...
Condition接口 应用场景:一个线程因为某个condition不满足被挂起,直到该Condition被满足了。 类似与Object的wait notify,因此Condition对象应该是被多线程共享的,需要使用锁保护其状态的一致性 示例代码: 以上代码可以很清楚的看出Condition是如何使用的,后面的BlockingXXX类型的数据结构都会使用到Condition。 在使用signa ...
2014-07-10 15:42 0 4401 推荐指数:
Java集合框架中的Map类型的数据结构是非线程安全,在多线程环境中使用时需要手动进行线程同步。因此在java.util.concurrent包中提供了一个线程安全版本的Map类型数据结构:ConcurrentMap。本篇文章主要关注ConcurrentMap接口以及它的Hash版本的实现 ...
《java.util.concurrent 包源码阅读》系列文章已经全部写完了。开始的几篇文章是根据自己的读书笔记整理出来的(当时只阅读了部分的源代码),后面的大部分都是一边读源代码,一边写文章。 由于水平有限,在阅读源代码的时候,分析得也比较浅显,还有很多地方自己也没有研究明白,有的地方显得 ...
Aomic数据类型有四种类型:AomicBoolean, AomicInteger, AomicLong, 和AomicReferrence(针对Object的)以及它们的数组类型, 还有 ...
准备花点时间阅读一下java.util.concurrent这个包里面的java代码,大致看了一下,这个包我个人觉得大致可以分为五个部分(如有不对之处,还望指正) 第一部分 Aomic数据类型 这部分都被放在java.util.concurrent.atomic这个包里面,实现了原子化 ...
JDK7引入了Fork/Join框架,所谓Fork/Join框架,个人解释:Fork分解任务成独立的子任务,用多线程去执行这些子任务,Join合并子任务的结果。这样就能使用多线程的方式来执行一个任务。 ...
与synchronized不同,Lock完全用Java写成,在java这个层面是无关JVM实现的。 在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类 ...
ScheduledThreadPoolExecutor是ThreadPoolExecutor的子类,同时实现了ScheduledExecutorService接口。 Schedu ...
这篇文章主要说说DelayedWorkQueue。 在ScheduledThreadPoolExecutor使用DelayedWorkQueue来存放要执行的任务,因为这些任务是带有延迟的,而每次执 ...