并发
java.util.concurrent 包下的类简介以及使用,以及关于并发的知识点介绍
临窗,听雨声
Java是世界上最好的语言,不是js,不是php,不是python,谢谢!
展开
-
CyclicBarrier 类简介
CyclicBarrier 类,就像一个哨子,等所有人都准备好了之后,一声令下,全部开始跑。 区别于 CountDownLatch ,CountDownLatch 是阻塞主线程,等其他的线程执行完了之后才让主线程继续执行。CyclicBarrier是阻塞子线程,等所有的子线程准备好了之后,才让所有的子线程全部开始执行 具体用法: 1.实例化 final CyclicBarr...原创 2019-05-22 15:42:33 · 229 阅读 · 0 评论 -
ExecutorService 线程池简介
1. Executors 创建线程池的方法 newFixedThreadPool() 方法,该方法返回一个固定数量的线程池,该方法的线程数始终不变,当有一个任务提交时,若线程池中空闲,则立即执行,若没有,则会被暂缓在一个任务队列中等待有空闲的线程去执行。适用场景:可用于Web服务瞬时削峰,但需注意长时间持续高峰情况造成的队列阻塞。 newSingleThreadExec...原创 2019-05-22 12:21:33 · 323 阅读 · 0 评论 -
java.util.concurrent 包下容器简介
1.ConcurrentMap 接口 ConcurrentHashMap:替代 HashTable,并发性能大大提升的map ConcurrentSkipListMap:替代TreeMap 可以并发排序的Map ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一- 个小的HashTable,它们有自己的锁。只要多个修改操作发生在不同的...原创 2019-05-21 17:45:26 · 458 阅读 · 0 评论 -
Master-Worker设计模式
Master-Worker设计模式,并行计算,很实用得一个设计模式。该设计模式的好处就是 并行计算,开一定的线程数去执行需要的操作,还是空间换时间,加快处理速度 思路:在 Master 里面使用三个字段,分别去装 所有的任务,所有的 子节点(Worker),装每个Worker返回数据的map,在Worker里面使用 Master 的 queue,resultMap 的引用,当 ...原创 2019-05-19 18:38:10 · 392 阅读 · 0 评论 -
future 设计模式
future 设计模式是一种很常见的设计模式,jdk就自带实现,Future,就是 一个线程执行之后可以获取到返回值的那个。类实现 CallAble 之后 进行线程池 submit之后返回 future对象,可以进行 get返回值。 此处自己实现一个 future设计模式的数据获取,future设计模式的好处就是 以空间换时间,获取数据的事情新开一个线程去执行,...原创 2019-05-19 00:35:55 · 311 阅读 · 0 评论 -
ThreadLocal简单用法-记录
ThreadLocal提供的方法: publicT get() { } publicvoidset(T value) { } publicvoidremove() { } protectedT initialValue() { } get() 获取ThreadLocal在当前线程中保存的变量的副本 set() 设置ThreadLocal在当前线程中保存的变量的副本的值 re...原创 2019-05-15 23:41:58 · 926 阅读 · 0 评论 -
CountDownLatch 简单用法-记录
参考+引用:https://www.cnblogs.com/liun1994/p/7396026.html CountDownLatch 是java1.5 之后在java.util.concurrent包下引入的并发类 CountDownLatch能等待其他线程执行完毕后再执行自己线程,CountDownLatch是JDK 5+里面闭锁的一个实现。 闭锁(latch):是一种同步方法,就像一...原创 2019-05-15 22:48:46 · 2423 阅读 · 3 评论 -
Thread之实现线程并获取返回值,使用实现 Callable类方法
我们使用继承Thread类,实现Runable类实现线程的时候,都面临一个问题,那就是在run方法里面无法抛异常,无法获取线程执行完后的返回值,我们需要返回值的时候怎么办呢?这个时候就需要 实现Callable接口了 我们来做一个龟兔赛跑的小实验 第一个,写出一个赛跑类,里面包含 赛跑者的名字,速度,是否可以跑,跑的总步数几个字段, /** * 创建赛跑类 * @author snow...原创 2018-08-23 23:04:37 · 2017 阅读 · 0 评论