
concurrent
文章平均质量分 91
iteye_8208
这个作者很懒,什么都没留下…
展开
-
java线程池
1.JDK中的Executor框架是基于生产者-消费者模式的线程池,提交任务的线程是生产者,执行任务的线程是消费者。 Executor线程池可以用于异步任务执行,而且支持很多不同类型任务执行策略,同时为任务提交和任务执行之间的解耦提供了标准方法。 Executor线程池支持如下三种线程执行策略: (1).顺序执行: 类似于单线程顺序执行任务,优点是实现简单;缺点是扩展性受限,执行效率低...原创 2016-10-16 19:34:50 · 97 阅读 · 0 评论 -
java中fail-fast 和 fail-safe的区别
原文地址:http://javahungry.blogspot.com/2014/04/fail-fast-iterator-vs-fail-safe-iterator-difference-with-example-in-Java.html 在我们详细讨论这两种机制的区别之前,首先得先了解并发修改。 1.什么是并发修改? 当一个或多个线程正在遍历一个集合Collection,此时...原创 2016-10-17 21:48:24 · 383 阅读 · 0 评论 -
synchronized 不公平锁
import java.util.ArrayList; import java.util.List; /* * 这段代码大多数情况下运行正常,但是某些情况下会出问题。什么时候会出现什么问题?如何修正? * * notify时如果入口区也有等待线程,这时需要等待区和入口区线程竞争获得锁。 * synchronized是不公平锁 */ public class My...原创 2016-11-12 13:33:44 · 2147 阅读 · 0 评论 -
Java的可见性和原子性
1. 工作内存和主内存 2. 可见性和共享变量 3. 约束 4. 共享变量可见性的原理 4.1 可见性的步骤 4.2 保证可见性的必要条件 synchronized实现可见性 5.1 synchronized实现的内容 5.2 JMM关于synchronized 的规定 5.3 synchronized互斥代码的过程 6 volatile实现可见性...原创 2016-12-12 15:19:28 · 176 阅读 · 0 评论 -
ScheduledExecutorService执行周期性或定时任务
ScheduledExecutorService扩展了ExecutorService接口,提供时间排程的功能。 schedule(Callable<V> callable, long delay, TimeUnit unit) 创建并执行在给定延迟后启用的 ScheduledFuture。 schedule(Runnable comm...原创 2017-01-24 14:47:07 · 147 阅读 · 0 评论 -
Java并发编程: 使用CountDownLatch协调子线程
1. CountDownLatch工具类介绍 CountDownLatch是一个同步工具类,它允许一个或多个线程处于等待状态直到在其它线程中运行的一组操作完成为止。CountDownLatch用一个给定的计数来实现初始化。Await方法会一直处于阻塞状态,直到countDown方法调用而使当前计数达到零。当计数为零之后,所有处于等待的线程将被释放,await的任何后续调用将立即返回。这种现象只出...原创 2017-02-13 12:39:11 · 153 阅读 · 0 评论