![](https://img-blog.csdnimg.cn/20210507140722559.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java Concurrent Utilities
文章平均质量分 69
java.util.concurrent包里的java并发工具类
lzc_23
这个作者很懒,什么都没留下…
展开
-
Java并发工具包--java.util.concurrent
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/index.html,机翻加人工校正,仅供学习交流。Java并发工具包–java.util.concurrent在Java 5版本新添加了一个Java .util.concurrent包,这个包包含一组使得在Java并发(多线程)应用程序开发中更加容易的类。在添加此包之前,您必须自己编写工具类。在本教程中,我将带您浏览java.util.concurrent中所有的类,所以你可以学习如何使用它们翻译 2021-05-06 10:19:43 · 189 阅读 · 0 评论 -
Java BlockingQueue
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/blockingqueue.html,机翻加人工校正,仅供学习交流。Java BlockingQueue接口Java BlockingQueue接口表示一个线程安全的队列,可以将元素放入,也可以取出。换句话说,多个线程可以同时从Java Bloc中插入和获取元素,不会有任何并发性问题。阻塞队列这个术语就来自于Java BlockingQueue 接口能够阻塞试图在队列插入或获取元素的线程。如果一翻译 2021-05-06 11:55:05 · 846 阅读 · 0 评论 -
ArrayBlockingQueue
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/arrayblockingqueue.html,机翻加人工校正,仅供学习交流。ArrayBlockingQueueArrayBlockingQueue类实现了BlockingQueue接口,阅读BlockingQueue文章以获得关于该接口的更多信息。ArrayBlockingQueue是一个有界的阻塞队列,它将元素存储在一个数组内部。有界意味着它不能存储无限量的元素,它同时可以存储的元素数量有翻译 2021-05-06 13:36:05 · 109 阅读 · 0 评论 -
DelayQueue
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/delayqueue.html,机翻加人工校正,仅供学习交流。DelayQueueDelayQueue类实现了BlockingQueue接口。阅读BlockingQueue以获得关于该接口的更多信息。DelayQueue在内部阻塞元素,直到某个延迟过期,元素必须实现接口java.util.concurrent.Delayed。以下是接口的展示:public interface Delayed翻译 2021-05-06 14:27:29 · 55 阅读 · 0 评论 -
LinkedBlockingQueue
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/linkedblockingqueue.html,机翻加人工校正,仅供学习交流。LinkedBlockingQueueLinkedBlockingQueue类实现了BlockingQueue接口,阅读BlockingQueue文本以获得关于该接口的更多信息。LinkedBlockingQueue在内部将元素保持在一个链接结构(链接节点)中。如果需要,这个链接结构可以设置一个上限。如果没有指定上限翻译 2021-05-06 14:31:37 · 74 阅读 · 0 评论 -
PriorityBlockingQueue
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/priorityblockingqueue.html,机翻加人工校正,仅供学习交流。PriorityBlockingQueuePriorityBlockingQueue类实现了BlockingQueue接口。阅读BlockingQueue文本以获得关于该接口的更多信息。PriorityBlockingQueue是一个无界并发队列。它使用与java.util.PriorityQueue类相同的排序规翻译 2021-05-06 14:47:19 · 99 阅读 · 0 评论 -
SynchronousQueue
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/synchronousqueue.html,机翻加人工校正,仅供学习交流。SynchronousQueueSynchronousQueue类实现了BlockingQueue接口。阅读BlockingQueue以获得关于该接口的更多信息。SynchronousQueue是一个可以用来与另一个线程交换单个元素的队列。将元素插入队列的线程被阻塞直到另一个线程从队列中获取该元素。如果线程试图获取某个元素翻译 2021-05-06 14:57:00 · 49 阅读 · 0 评论 -
BlockingDeque
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/blockingdeque.html,机翻加人工校正,仅供学习交流。BlockingDeque在java.util.concurrent包中,BlockingDeque接口是一个线程安全的插入和取出的双向队列。在本文中,我将向您展示如何使用BlockingDeque。BlockingDeque是一个阻塞线程插入或删除元素的双向队列,如果不能从双向队列中插入或删除元素。deque是“双尾队列”的翻译 2021-05-06 16:07:07 · 286 阅读 · 0 评论 -
LinkedBlockingDeque
本文翻译自http://tutorials.jenkov.com/java-concurrency/race-conditions-and-critical-sections.html,人工翻译,仅供学习交流。LinkedBlockingDeque链表阻塞双向队列实现阻塞双向队列接口,阅读阻塞双向队列文章获取更多内容。deque是双向队列的缩写,你可以插入和删除元素从双向队列的任意一端。当链表阻塞双向队列为空时,如果一个线程从其内部获取元素,无论从哪一端尝试获取元素,线程都将会阻塞。下面是如何实例翻译 2021-05-06 16:15:09 · 93 阅读 · 0 评论 -
ConcurrentMap
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/concurrentmap.html,人工翻译,仅供学习交流。ConcurrentMapjava.util.concurrent.ConcurrentMapConcurrentMap接口表示一个Map,它能够处理对它的并发访问(存入和取出)。除了从它的超接口java.util.Map继承的方法之外,ConcurrentMap有一些额外的原子方法。ConcurrentMap实现类由于Concu翻译 2021-05-06 16:38:55 · 278 阅读 · 0 评论 -
ConcurrentNavigableMap
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/concurrentnavigablemap.html,人工翻译,仅供学习交流。ConcurrentNavigableMapConcurrentNavigableMap类是为了支持NavigableMap并发访问的而设计的子接口,使其子类可以实现并发访问。可以通过不同的方法,如 headMap(), subMap() 和tailMap(),返回这些子类。比起重新解释NavigableMap中的所翻译 2021-05-07 11:06:20 · 392 阅读 · 0 评论 -
CountDownLatch
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/countdownlatch.html,人工翻译,仅供学习交流。CountDownLatchjava.util.concurrent.CountDownLatch是一个允许一个或多个线程等待一组给定的操作完成后的并发结构。闭锁初始化给定一个计数,这个值会通过调用countDown()方法增加。一直等待到为0的线程可以先调用await()方法进行等待。调用await()方法会阻塞线程直到计数为0。翻译 2021-05-07 11:32:22 · 58 阅读 · 0 评论 -
CyclicBarrier
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/cyclicbarrier.html,人工翻译,仅供学习交流。CyclicBarrierjava.util.concurrent.CyclicBarrier类是一种通过某种算法同步线程的同步机制。换句话说,在任何线程继续执行之前,除非所有的线程都到达屏障,否则所有线程都要等待。下面是示意图:两个线程通过调用Cyclibarrier的await()方法等待对方。一旦所有的线程都处在CyclicBa翻译 2021-05-07 13:57:42 · 69 阅读 · 0 评论 -
Exchanger
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/exchanger.html,人工翻译,仅供学习交流。Exchangerjava.util.concurrent.Exchanger表示一种集合点,两个线程可以在此交换对象。下面是这个机制的一个例子:交换对象是通过两个exchange()方法中的一个完成的。这里有一个例子:Exchanger exchanger = new Exchanger();ExchangerRunnable ex翻译 2021-05-07 14:02:22 · 68 阅读 · 0 评论 -
Semaphore
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/semaphore.html,人工翻译,仅供学习交流。Semaphorejava.util.concurrent.Semaphore类是一个计数信号量。这意味着他有两个主要的方法:acquire()release()计数信号量被初始化为给定数量的“许可”。每次调用acquire()时,调用线程都会获得一个许可。每次调用release()都会返回一个许可给信号量。如果N是初始化信号量时的许可翻译 2021-05-07 15:00:29 · 56 阅读 · 0 评论 -
ExecutorService
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/executorservice.html,人工翻译,仅供学习交流。ExecutorServicejava.util.concurrent.ExecutorService接口是一种能够在后台并发执行任务的异步执行机制。本文中,我将会介绍如何创建ExecutorService,如何向它提交要执行的任务,如何查看这些任务的结果以及当需要时,如何再次关闭ExecutorService。任务委派下面的图翻译 2021-05-07 17:10:33 · 2888 阅读 · 0 评论 -
Java Callable
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/java-callable.html,人工翻译,仅供学习交流。Java Callablejava.util.concurrent.Callable接口表示可以由单独线程执行的异步任务。例如,可以提交Callable对象到异步执行它的Java ExecutorService。Java Callable接口定义Java Callable接口非常简单,它包含一个名为call()的方法。Callabl翻译 2021-05-07 17:30:23 · 318 阅读 · 0 评论 -
Java Future
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/java-future.html,人工翻译,仅供学习交流。Java Futurejava.util.concurrent.Future类表示一个异步计算结果,创建异步任务时,将返回一个Java Future对象。Future对象作为异步任务结果的句柄。一旦异步任务完成,结果可以通过任务启动时返回的Future对象访问。一些Java内置的并发工具类,比如Java ExecutorService,会翻译 2021-05-07 18:02:43 · 103 阅读 · 0 评论 -
ThreadPoolExecutor
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/threadpoolexecutor.html,人工翻译,仅供学习交流。ThreadPoolExecutorjava.util.concurrent.ThreadPoolExecutor是 ExecutorService接口的实现类。ThreadPoolExecutor使用它的一个内部先查池执行给定的任务(Callable或Runnable).ThreadPoolExecutor中包含的线程池可翻译 2021-05-07 18:11:48 · 92 阅读 · 0 评论 -
ScheduledExecutorService
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/scheduledexecutorservice.html,人工翻译,仅供学习交流。ScheduledExecutorServicejava.util.concurrent.ScheduledExecutorService 是一个能够安排任务延迟运行,或者在固定的时间间隔内重复执行的ExecutorService。请求由工作线程异步执行,而不是通过将任务交给ScheduledExecutorSer翻译 2021-05-08 09:57:55 · 532 阅读 · 0 评论 -
Java Fork and Join using ForkJoinPool
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/java-fork-and-join-forkjoinpool.html,人工翻译,仅供学习交流。Java Fork and Join using ForkJoinPool在Java 7中添加了ForkJoinPool,ForkJoinPool类似于Java ExecutorService,但有一个区别。ForkJoinPool使任务很容易把他们的工作分割成更小的可以提交给ForkJoinPool翻译 2021-05-08 11:18:58 · 103 阅读 · 0 评论 -
Java Lock
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/lock.html,人工翻译,仅供学习交流。Java Lockjava.util.concurrent.locks.Lock接口表示一个并发锁,它可以用来防止临界区段内的竞态条件。Java Lock接口为Java同步块提供了一个更灵活的替代方案。在本Java Lock教程中,我将解释Lock接口是如何工作的,以及如何使用它。如果您不熟悉Java同步块、竞态条件和临界区,你可以在我的教程中了解更多翻译 2021-05-08 14:50:42 · 110 阅读 · 0 评论 -
ReadWriteLock
ReadWriteLockreadwritelock是一种高级的线程锁机制,它允许多个线程读取某个资源,但一次只能有一个线程写入它。其思想是,多个线程可以同时从共享资源中读取,而不会导致并发性错误。并发错误首先发生在对共享资源的读写并发发生时,或者多个写入并发发生。在本文中,我只介绍了Java内置的ReadWriteLock。如果您想了解更多关于ReadWriteLock实现背后的理论.。你可以在我的Java并发教程中读到Read - Write Locks。ReadWriteLock锁定规则允许翻译 2021-05-08 17:27:57 · 101 阅读 · 0 评论 -
AtomicBoolean
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/atomicboolean.html,人工翻译,仅供学习交流。AtomicBooleanAtomicBoolean类为您提供了一个布尔变量,可以以原子的方式读取和写入,它还包含了像compareAndSet()这样的高级原子操作。AtomicBoolean类位于java.util.concurrent.atomic包中,所以完整的类名是java.util.concurrent.atomic.Ato翻译 2021-05-08 18:01:33 · 219 阅读 · 0 评论 -
AtomicInteger
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/atomicinteger.html,人工翻译,仅供学习交流。AtomicIntegerAtomicInteger类提供了一个int变量,可以以原子方式读写,也包含像compareAndSet()这样的高级原子操作。AtomicInteger类位于java.util.concurrent.atomic包中,所以完整的类名是java.util.concurrent.atomic.AtomicInte翻译 2021-05-08 18:20:48 · 967 阅读 · 0 评论 -
AtomicLong
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/atomiclong.html,人工翻译,仅供学习交流。AtomicLongAtomicLong类为您提供了一个Long变量,它可以原子地读写。它也包含像compareAndSet()这样的高级原子操作。AtomicLong类位于java.util.concurrent.atomic包中,因此完整的类名java.util.concurrent.atomic.AtomicLong。本文描述了在Jav翻译 2021-05-10 14:01:46 · 741 阅读 · 0 评论 -
AtomicReference
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/atomicreference.html,人工翻译,仅供学习交流。AtomicReferenceAtomicReference类提供了一个对象引用变量,它可以原子地读写。原子是指多个线程试图更改同一个AtomicReference(例如,CAS)不会使AtomicReference最终处于不一致的状态。AtomicReference甚至有一个高级的compareAndSet()方法让您将引用与期望翻译 2021-05-10 14:43:05 · 1504 阅读 · 0 评论 -
AtomicStampedReference
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/atomicstampedreference.html,人工翻译,仅供学习交流。AtomicStampedReferenceAtomicStampedReference类提供了一个以原子形式读写的对象引用变量。原子性意味着多个线程试图改变同一的AtomicStampedReference时,AtomicStampedReference最终会处于一个一致的状态。AtomicStampedRefere翻译 2021-05-10 15:39:21 · 1194 阅读 · 0 评论 -
AtomicIntegerArray
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/atomicintegerarray.html,人工翻译,仅供学习交流。AtomicIntegerArrayjava.util.concurrent.atomic.AtomicIntegerArray表示一个int数组。AtomicIntegerArray中的int元素可以原子更新。AtomicIntegerArray还支持比较并交换功能。创建AtomicIntegerArray可以使用Ato翻译 2021-05-10 16:13:59 · 822 阅读 · 0 评论 -
AtomicLongArray
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/atomiclongarray.html,人工翻译,仅供学习交流。AtomicLongArrayjava.util.concurrent.atomic.AtomicLongArray表示一个int数组。AtomicLongArray中的int元素可以原子更新。AtomicLongArray还支持比较并交换功能。创建AtomicLongArray可以使用AtomicLongArray的两个构造函翻译 2021-05-10 17:54:06 · 190 阅读 · 0 评论 -
AtomicReferenceArray
本文翻译自http://tutorials.jenkov.com/java-util-concurrent/atomicreferencearray.html,人工翻译,仅供学习交流。AtomicReferenceArrayatomic包中的AtomicReferenceArray是一个可以原子更新的对象引用数组。AtomicReferenceArray类也支持比较并交换功能。创建AtomicReferenceArray您可以使用AtomicReferenceArray的两个构造函数之一来创建它。第翻译 2021-05-10 18:19:26 · 950 阅读 · 0 评论