
Java高并发
文章平均质量分 89
Java高并发以及NIO相关知识。
zxc123e
这个作者很懒,什么都没留下…
展开
-
线程安全性与安全策略
线程安全性当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么这个类就是线程安全的。原子性:提供了互斥访问,同一时刻只能有一个线程来对它进行操作可见性:一个线程对主内存的修改可以及时被其他线程观察到有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序的存在,该观察结果一般杂乱...原创 2019-06-28 16:05:03 · 783 阅读 · 0 评论 -
Java并发包:AtomicBoolean和AtomicReference
文章译自:http://tutorials.jenkov.com/java-util-concurrent/index.html 这个系列文章已基本结束,如有不妥,请批评指正。 转自请注明出处。AtomicBooleanAtomicBoolean是一个读和写都是原子性的boolean类型的变量。这里包含高级的原子操作,例如compareAndSet()。AtomicBoolea翻译 2016-07-28 17:31:20 · 14367 阅读 · 2 评论 -
Java并发包:Lock和ReadWriteLock
文章译自:http://tutorials.jenkov.com/java-util-concurrent/index.html 抽空翻译了一下这个教程的文章,后面会陆续放出,如有不妥,请批评指正。 转自请注明出处。Lockjava.util.concurrent.locks.Lock是一种线程同步机制,类似于synchronized块。然而,Locks比同步代码块更灵活更复杂。顺便提一下,翻译 2016-07-22 17:28:23 · 3584 阅读 · 0 评论 -
Java并发包:Java Fork and Join using ForkJoinPool
ForkJoinPool是在java7中增加的。ForkJoinPool类似与Java ExecutorService,但是有一个不同。ForkJoinPool使得切分它的任务成为一些小的任务然后提交给ForkJoinPool执行是很容易的。任务可以别不断的切分成子任务,只要任务是可以被切分的。这也许听起来很抽象,因此在教程中我将解释ForkJoinPool的工作原理,以及它是如何拆分任务的。For翻译 2016-07-15 18:51:07 · 1519 阅读 · 1 评论 -
Java并发包:ScheduledExecutorService
文章译自:http://tutorials.jenkov.com/java-util-concurrent/index.html 抽空翻译了一下这个教程的文章,后面会陆续放出,如有不妥,请批评指正。 转自请注明出处。ScheduledExecutorServicejava.util.concurrent.ScheduleExecutorService是一种安排任务执行的ExecutorSer翻译 2016-07-14 18:02:55 · 7825 阅读 · 0 评论 -
Java并发包:阻塞队列(BlockingQueue)
文章译自:http://tutorials.jenkov.com/java-util-concurrent/index.html 抽空翻译了一下这个教程的文章,后面会陆续放出,如有不妥,请批评指正。 转自请注明出处。BlockingQueue在java.util.concurrent包中的 BlockingQueue接口类是一种线程安全的队列。这篇文章我们将展示如何使用BlockingQueue翻译 2016-07-06 12:27:22 · 3123 阅读 · 0 评论 -
Java并发包:双端阻塞队列(BlockingDeque)
BlockingDequeJava.util.concruuent包中的BlockingDeque接口是一种双端队列,向其中加入元素或从中取出元素都是线程安全的。这里展示如何使用BlockingDeque。BlockingDeque是一个双端队列,如果完全不可能对双端队列进行插入或者删除元素,它将会阻塞线程。deque 是 “Double Ended Queue”的简称。因此一个deque可以从两端翻译 2016-07-06 17:35:25 · 12375 阅读 · 0 评论 -
Java并发包:CountDownLatch和CyclicBarrier
CountDownLatchjava.util.concurrent.CountDownLatch是一种并发结构,它允许一个或者多个线程等待一个给定的操作集合完成。 CountDownLatch初始化时需要给定一个总数。这个总数将会随着调用countDown()方法次数递减。通过调用await()方法,线程将会等到这个总数变为0。调用await()方法会阻塞线程直到那个总数递减到0为止。 下面是翻译 2016-07-07 11:41:24 · 857 阅读 · 0 评论 -
Java并发包:Exchanger和Semaphore
文章译自:http://tutorials.jenkov.com/java-util-concurrent/index.html 抽空翻译了一下这个教程的文章,后面会陆续放出,如有不妥,请批评指正。 转自请注明出处。Exchangerjava.util.concurrent.Exchanger类代表的是一个会和点,这个会和点是两个线程交换对象的位置的,下图是这种机制的图示: 交换对象是通过翻译 2016-07-07 17:31:30 · 1020 阅读 · 0 评论 -
Java并发包:ConcurrentMap
文章译自:http://tutorials.jenkov.com/java-util-concurrent/index.html 抽空翻译了一下这个教程的文章,后面会陆续放出,如有不妥,请批评指正。 转自请注明出处。 之前漏了一篇文章,这篇应该是在双端队列之后的,这里补上。ConcurrentMapjava.util.concurrent.ConcurrentMap接口代表一个Map,它可翻译 2016-07-08 17:29:55 · 15707 阅读 · 0 评论 -
Java并发包:ExecutorService和ThreadPoolExecutor
文章译自:http://tutorials.jenkov.com/java-util-concurrent/index.html 抽空翻译了一下这个教程的文章,后面会陆续放出,如有不妥,请批评指正。 转自请注明出处。 ExecutorServiceJava.util.concurrent.ExecutorService接口代表一种异步执行机制,它能够在后台执行任务。因此ExecutorSer翻译 2016-07-12 17:50:16 · 13620 阅读 · 3 评论