java-util-concurrent
文章平均质量分 76
yvan1115
这个作者很懒,什么都没留下…
展开
-
Java多线程工具包java.util.concurrent---Lock
什么是lockjava.util.concurrent.locks.Lock 是一个类似于 synchronized 块的线程同步机制。但是 Lock 比 synchronized 块更加灵活、精细。 首先创建了一个 Lock 对象。之后调用了它的 lock() 方法。这时候这个 lock 实例就被锁住。任何其他再过来调用 lock() 方法的线程将会被阻塞住,直到锁定 lock 实例的线程调用了原创 2017-11-27 11:09:57 · 466 阅读 · 0 评论 -
Java多线程工具包java.util.concurrent---ReadWriteLock
什么是ReadWriteLockjava.util.concurrent.locks.ReadWriteLock 读写锁是一种先进的线程锁机制。它能够允许多个线程在同一时间对某特定资源进行读取,但同一时间内只能有一个线程对其进行写入。 读写锁的理念在于多个线程能够对一个共享资源进行读取,而不会导致并发问题。并发问题的发生场景在于对一个共享资源的读和写操作的同时进行,或者多个写操作并发进行。Read原创 2017-11-27 15:44:21 · 333 阅读 · 0 评论 -
Java多线程工具包java.util.concurrent---ExecutorService
什么是ExecutorServicejava.util.concurrent.ExecutorService 接口表示一个异步执行机制,使我们能够在后台执行任务。因此一个 ExecutorService 很类似于一个线程池。实际上,存在于 java.util.concurrent 包里的 ExecutorService 实现就是一个线程池实现。ExecutorService的实现E...原创 2017-11-23 16:15:44 · 2320 阅读 · 0 评论 -
Java多线程工具包java.util.concurrent---LinkedBlockingQueue
LinkedBlockingQueue 简介 LinkedBlockingQueue 类实现了 BlockingQueue 接口。 LinkedBlockingQueue 内部以一个链式结构(链接节点)对其元素进行存储。如果需要的话,这一链式结构可以选择一个上限。如果没有定义上限,将使用 Integer.MAX_VALUE 作为上限。 LinkedBlockingQueue 内部以原创 2017-11-20 15:50:37 · 558 阅读 · 0 评论 -
Java多线程工具包java.util.concurrent---DelayQueue
延迟队列 DelayQueue DelayQueue 实现了 BlockingQueue 接口。 DelayQueue 对元素进行持有直到一个特定的延迟到期。 DelayQueue 将会在每个元素的 getDelay() 方法返回的值的时间段之后才释放掉该元素。如果返回的是 0 或者负值,延迟将被认为过期,该元素将会在 DelayQueue 的下一次 take 被调用的时候被释放掉原创 2017-11-17 15:31:21 · 670 阅读 · 0 评论 -
Java多线程工具包java.util.concurrent---Semaphore
什么是Semphorejava.util.concurrent.Semaphore 类是一个计数信号量。计数信号量由一个指定数量的 “许可” 初始化。每调用一次 acquire(),一个许可会被调用线程取走。每调用一次 release(),一个许可会被返还给信号量。因此,在没有任何 release() 调用时,最多有 N 个线程能够通过 acquire() 方法,N 是该信号量初始化时的许可的指定数原创 2017-11-22 16:00:37 · 615 阅读 · 0 评论 -
Java多线程工具包java.util.concurrent---CyclicBarrier
什么是CyclicBarrier栅栏java.util.concurrent.CyclicBarrier 类是一种同步机制,它能够对处理一些算法的线程实现同步。换句话讲,它就是一个所有线程必须等待的一个栅栏,直到所有线程都到达这里,然后所有线程才可以继续做其他事情。图示如下: 有什么特点1、CyclicBarrier初始化时规定一个数目,然后计算调用了CyclicBarrier.await()进入原创 2017-11-21 17:05:47 · 443 阅读 · 0 评论 -
Java多线程工具包java.util.concurrent---CountDownLatch
什么是CountDownLatchjava.util.concurrent.CountDownLatch 是一个并发构造,它允许一个或多个线程等待一系列指定操作的完成。 CountDownLatch 以一个给定的数量初始化。countDown() 每被调用一次,这一数量就减一。通过调用 await() 方法之一,线程可以阻塞等待这一数量到达零。典型使用场景最新开《亿级流量网站架构核心技术》一书中提原创 2017-11-21 15:56:32 · 496 阅读 · 0 评论 -
Java多线程工具包java.util.concurrent---ConcurrentHashMap
参考以下微博 http://blog.csdn.net/xiaohui127/article/details/11928865 http://blog.csdn.net/xuefeng0707/article/details/40797085 http://www.importnew.com/21388.html 本文没有具体探讨ConcurrentHashMap、HashMap、HashT原创 2017-11-20 18:17:59 · 629 阅读 · 0 评论 -
Java多线程工具包java.util.concurrent---ArrayBlockingQueue
以下内容部分参考于: Java 并发工具包 java.util.concurrent 用户指南 这一系列的文章中例子是作者自己编写,有不对的地方欢迎大家指针,多数例子是想通过实际场景来说明工具包API的作用。BlockingQueuejava.util.concurrent 包里的 BlockingQueue 接口表示一个线程安放入和提取实例的队列。本小节我将给你演示如何使用这个 Blockin原创 2017-11-16 10:30:40 · 918 阅读 · 0 评论 -
Java多线程工具包java.util.concurrent---目录
以下内容部分参考于: Java 并发工具包 java.util.concurrent 用户指南 这一系列的文章中例子是作者自己编写,有不对的地方欢迎大家指教讨论,多数例子是想通过实际场景来说明工具包API的作用。目录阻塞有界队列ArrayBlockingQueue延迟队列DelayQueue阻塞链表队列LinkedBlockingQueueConcurrentHashMapThre原创 2017-11-29 13:20:44 · 351 阅读 · 0 评论 -
Java多线程工具包java.util.concurrent---原子性和ABA问题
什么是原子性 什么是可见性可见性 在多核处理器中,如果多个线程对一个变量(假设)进行操作,但是这多个线程有可能被分配到多个处理器中运行,那么编译器会对代码进行优化,当线程要处理该变量时,多个处理器会将变量从主存复制一份分别存储在自己的片上存储器中,等到进行完操作后,再赋值回主存。(这样做的好处是提高了运行的速度,因为在处理过程中多个处理器减少了同主存通信的次数);同样在单核处理器中这样由于“备份原创 2017-11-29 11:57:54 · 525 阅读 · 0 评论 -
Java多线程工具包java.util.concurrent---Atomic
java.util.concurrent工具包中提供了很多原子类的工具类,这篇文章主要针对 AtomicBoolean、AtomicInteger、AtomicReference做一个说明AtomicBooleanAtomicBoolean 类为我们提供了一个可以用原子方式进行读和写的布尔值,它还拥有一些先进的原子性操作,比如 compareAndSet()。AtomicBoolean 类位于 j原创 2017-11-28 13:22:56 · 528 阅读 · 0 评论