![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发编程
闵浮龙
要么精彩的活,要么卑微的死
展开
-
并发工具类CountDownLatch、CyclicBarrier、Semaphore、Exchanger详解
一、CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。如果需要重置计数,...原创 2018-03-31 14:21:59 · 599 阅读 · 0 评论 -
FutureTask介绍及使用
Future Future是一个接口,它定义了5个方法: boolean cancel(boolean mayInterruptIfRunning); boolean isCancelled(); boolean isDone(); V get() throws InterruptedException, ExecutionException; 简单说明一下接口定义 boolean can...转载 2018-03-31 19:56:38 · 43525 阅读 · 2 评论 -
ForkJoin框架详解
一、ForkJoin主要类 主要类有以下4个: 1、ForkJoinPool 2、ForkJoinTask 3、ForkJoinWorkerThread 4、ForkJoinPool.WorkQueue 功能如下: ForkJoinPool: 1,用来执行Task,或生成新的ForkJoinWorkerThread 2,执行 ForkJoinWorkerThread 间的...转载 2018-03-31 23:44:02 · 309 阅读 · 0 评论 -
并发容器CopyOnWriteArrayList、ConcurrentLinkedQueue、ArrayBlockingQueue原理与使用
一、为什么要使用并发容器 举例说明: 线程安全容器–>线程不安全容器–>并发容器 Vector –>ArrayList –>CopyOnWriteArrayList Hashtable –>HashMap –>ConcurrentHashMap 从上面可以发现其中线程安全的容器Vector、Ha...原创 2018-04-01 09:49:11 · 1315 阅读 · 0 评论 -
线程池
线程池 线程池 线程池概述 创建一个线程池并提交线程任务 线程池源码解析 参数认识 构造方法 提交任务 addWorker 执行任务 关闭线程池 例子 线程池概述 什么是线程池 为什么使用线程池 线程池的优势 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。...转载 2018-04-01 18:31:57 · 205 阅读 · 0 评论 -
Java并发编程原理与实战一(线程状态及创建线程的多种方式)
一、为什么要学习并发编程 1.发挥多处理的强大能力 2.建模的简单性 3.异步事件的简化处理 4.响应更加灵敏的用户界面 二、并发的缺点 1.安全性问题 多线程环境下 多个线程共享一个资源 对资源进行非原子性操作 2.活跃性问题(饥饿) 1、死锁 2、饥饿 饥饿与公平 1)高优先级吞噬所有低优先级的CPU时间片 2)线程被永久堵塞在一个...转载 2018-03-28 13:50:33 · 1202 阅读 · 0 评论 -
java多线程实现生产者消费者场景
商店 public class Tmall { private int count; public final int MAX_COUNT = 10; public synchronized void push () { while(count >= MAX_COUNT) { try { ...原创 2018-03-28 15:32:55 · 1338 阅读 · 0 评论 -
java多线程之间的相互通信
利用Condition的await方法和signal方法了指定叫醒一个线程、通过变量signal来实现线程之间的通信 import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; publ...原创 2018-03-28 22:49:21 · 413 阅读 · 0 评论 -
线程之间通信之join应用与实现原理剖析
public class Demo { public void a(Thread joinThread) { System.out.println("方法a执行了..."); joinThread.start(); try { joinThread.join(); } catch (Interru...原创 2018-03-29 07:13:51 · 305 阅读 · 0 评论