摘要:转 http://blog.csdn.net/yanyan19880509/article/details/52349056 前言 前面介绍了ReentrantLock,又叫排他锁,本篇主要通过CountDownLatch的学习来了解java并发包中是如何实现共享锁的。 CountDownLatch 阅读全文
轻松学习java可重入锁(ReentrantLock)的实现原理
2017-11-29 18:03 by faunjoe88, 1247 阅读, 0 推荐, 收藏, 编辑
摘要:转 http://blog.csdn.net/yanyan19880509/article/details/52345422 前言 相信学过java的人都知道 synchronized 这个关键词,也知道它用于控制多线程对并发资源的安全访问,兴许,你还用过Lock相关的功能, 但你可能从来没有想过j 阅读全文
第一章 Java常用的并发类
2017-11-28 14:13 by faunjoe88, 245 阅读, 0 推荐, 收藏, 编辑
摘要:注:本系列博客主要参考于《分布式Java应用:基础与实践》,林昊 著 1、常用的并发集合类 ConcurrentHashMap:线程安全的HashMap的实现 CopyOnWriteArrayList:线程安全且在读操作时无锁的ArrayList CopyOnWriteArraySet:基于Copy 阅读全文
Java多线程21:多线程下的其他组件之CyclicBarrier、Callable、Future和FutureTask
2017-11-28 13:17 by faunjoe88, 214 阅读, 0 推荐, 收藏, 编辑
摘要:CyclicBarrier 接着讲多线程下的其他组件,第一个要讲的就是CyclicBarrier。CyclicBarrier从字面理解是指循环屏障,它可以协同多个线程,让多个线程在这个屏障前等待,直到所有线程都达到了这个屏障时,再一起继续执行后面的动作。看一下CyclicBarrier的使用实例: 阅读全文
Java多线程20:多线程下的其他组件之CountDownLatch、Semaphore、Exchanger
2017-11-28 13:08 by faunjoe88, 212 阅读, 0 推荐, 收藏, 编辑
摘要:前言 在多线程环境下,JDK给开发者提供了许多的组件供用户使用(主要在java.util.concurrent下),使得用户不需要再去关心在具体场景下要如何写出同时兼顾线程安全性与高效率的代码。之前讲过的线程池、BlockingQueue都是在java.util.concurrent下的组件,Tim 阅读全文
Java多线程19:定时器Timer
2017-11-27 18:31 by faunjoe88, 226 阅读, 0 推荐, 收藏, 编辑
摘要:前言 定时/计划功能在Java应用的各个领域都使用得非常多,比方说Web层面,可能一个项目要定时采集话单、定时更新某些缓存、定时清理一批不活跃用户等等。定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程方式进行处理,所以它和多线程技术关联还是相当大的。那和ThreadLoc 阅读全文
Java多线程18:线程池
2017-11-27 18:12 by faunjoe88, 196 阅读, 0 推荐, 收藏, 编辑
摘要:使用线程池与不使用线程池的差别 先来看一下使用线程池与不使用线程池的差别,第一段代码是使用线程池的: 接着是不使用线程池的: 运行一下,我这里第一段代码使用了线程池的时间是194ms,第二段代码不使用线程池的时间是2043ms。这里默认的线程池中的线程数是100,如果把这个数量减小,虽然系统的处理数 阅读全文
Java多线程17:中断机制
2017-11-27 17:22 by faunjoe88, 219 阅读, 0 推荐, 收藏, 编辑
摘要:概述 之前讲解Thread类中方法的时候,interrupt()、interrupted()、isInterrupted()三个方法没有讲得很清楚,只是提了一下。现在把这三个方法同一放到这里来讲,因为这三个方法都涉及到多线程的一个知识点 中断机制。 Java没有提供一种安全、直接的方法来停止某个线程 阅读全文
Java多线程16:线程组
2017-11-27 16:56 by faunjoe88, 373 阅读, 0 推荐, 收藏, 编辑
摘要:线程组 可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的组织结构有点类似于树的形式,如图所示: 线程组的作用是:可以批量管理线程或线程组对象,有效地对线程或线程组对象进行组织。 线程关联线程组:1级关联 所谓1级关联就是父对象中有子对象,但并不创建孙对 阅读全文
Java多线程15:Queue、BlockingQueue以及利用BlockingQueue实现生产者/消费者模型
2017-11-27 16:44 by faunjoe88, 308 阅读, 0 推荐, 收藏, 编辑
摘要:Queue是什么 队列,是一种数据结构。除了优先级队列和LIFO队列外,队列都是以FIFO(先进先出)的方式对各个元素进行排序的。无论使用哪种排序方式,队列的头都是调用remove()或poll()移除元素的。在FIFO队列中,所有新元素都插入队列的末尾。 Queue中的方法 Queue中的方法不难 阅读全文