文章分类 -  java多线程

摘要:11.1 生产者和消费者模式 11.1.1 生产者消费者模式实战、 11.1.2 多生产者和多消费者场景 11.1.3 线程池与生产消费者模式、 11.2 线上问题定位 11.3 性能测试 11.4 异步任务池 阅读全文
posted @ 2021-06-04 15:52 弱水三千12138 编辑
摘要:10.1 Executor框架简介 10.1.1 Executor框架的两级调度模型 10.1.2 Executor框架的结构与成员 10.2 ThreadPoolExecutor详解 10.2.2 SingleThreadExecutor详解 10.2.3 CachedThreadPool详解 1 阅读全文
posted @ 2021-06-04 15:51 弱水三千12138 编辑
摘要:9.1 线程池的实现原理 9.2 线程池的使用 9.2.1 线程池的创建 9.2.2 向线程池提交任务 9.2.3 关闭线程池 9.2.4 合理地配置线程池 9.2.5 线程池的监控 阅读全文
posted @ 2021-06-04 15:50 弱水三千12138 编辑
摘要:8.1 等待多线程完成的CountDownLatch 8.2 同步屏障CyclicBarrier 8.2.1 CyclicBarrier简介 8.2.2 CyclicBarrier的应用场景 8.2.3 CyclicBarrier和CountDownLatch的区别 8.3 控制并发线程数的Sema 阅读全文
posted @ 2021-06-04 15:49 弱水三千12138 编辑
摘要:7.1 原子更新基本类型类 7.2 原子更新数组 7.3 原子更新引用类型 7.4 原子更新字段类 阅读全文
posted @ 2021-06-04 15:48 弱水三千12138 编辑
摘要:6.1 ConcurrentHashMap的实现原理与使用 6.1.1 为什么要使用ConcurrentHashMap 6.1.2 ConcurrentHashMap的结构 6.1.3 ConcurrentHashMap的初始化 6.1.4 定位Segment 6.2 ConcurrentLinke 阅读全文
posted @ 2021-06-04 15:47 弱水三千12138 编辑
摘要:5.1 Lock接口 5.2 队列同步器 5.2.1 队列同步器的接口与示例 5.2.2 队列同步器的实现分析 5.3 重入锁 5.4 读写锁 5.4.1 读写锁的接口与示例 5.4.2 读写锁的实现分析 5.5 LockSupport工具 5.6 Condition接口 5.6.1 Conditi 阅读全文
posted @ 2021-06-04 15:46 弱水三千12138 编辑
摘要:4.1.1 什么是线程 4.1.2 为什么要使用多线程 4.1.3 线程优先级 4.1.4 线程的状态 4.1.5 Daemon线程 4.2 启动和终止线程 4.2.1 构造线程 4.2.2 启动线程 4.2.3 理解中断 4.2.4 过期的suspend()、resume()和stop() 4.2 阅读全文
posted @ 2021-06-04 15:45 弱水三千12138 编辑
摘要:3.1.1 并发编程模型的两个关键问题 3.1.2 Java内存模型的抽象结构 3.1.3 从源代码到指令序列的重排序 3.1.4 并发编程模型的分类 3.1.5 happens-before简介 3.2 重排序 3.2.1 数据依赖性 3.2.2 as-if-serial语义 3.2.3 程序顺序 阅读全文
posted @ 2021-06-04 15:44 弱水三千12138 编辑
摘要:2.1 volatile的应用 2.2 synchronized的实现原理与应用 2.2.1 Java对象头 2.2.2 锁的升级与对比 2.3 原子操作的实现原理 笔记 volatile的应用 volatile是轻量级的synchronized锁 内存屏障:是一组内存指令,用于限制对内存操作的顺序 阅读全文
posted @ 2021-06-04 15:43 弱水三千12138 编辑
摘要:1.1 上下文切换 1.1.1 多线程一定快吗 1.1.2 测试上下文切换次数和时长 1.1.3 如何减少上下文切换 1.1.4 减少上下文切换实战 1.2 死锁 1.3 资源限制的挑战 1.4 本章小结 笔记 死锁 比如线程1锁住A,需要获取锁B才会释放资源A,线程2锁住资源B,需要获取资源A才会 阅读全文
posted @ 2021-06-04 15:42 弱水三千12138 编辑
摘要:10.1 集合框架结构简要 10.1.1 接口Iterable 10.1.2 接口Collection 10.1.3 接口List 10.1.4 接口Set 10.1.5 接口Queue 10.1.6 接口Deque 10.2 非阻塞队列 10.2.1 类ConcurrentHashMap的使用 1 阅读全文
posted @ 2021-06-04 15:40 弱水三千12138 编辑
摘要:9.1 Fork-Join分治编程与类结构 9.2 使用RecursiveAction让任务跑起来 9.3 使用RecursiveAction分解任务 9.4 使用RecursiveTask取得返回值与join()和get()方法的区别 9.5 使用RecursiveTask执行多个任务并打印返回值 阅读全文
posted @ 2021-06-04 15:39 弱水三千12138 编辑
摘要:8.1 ScheduledExecutorService的使用 8.2 ScheduledThreadPoolExecutor使用Callable延迟运行 8.3 ScheduledThreadPoolExecutor使用Runnable延迟运行 8.4 延迟运行并取得返回值 8.5 使用sched 阅读全文
posted @ 2021-06-04 15:38 弱水三千12138 编辑
摘要:7.1 在ThreadPoolExecutor中使用ExecutorService中的方法 7.2 方法invokeAny(Collection tasks)的使用与interrupt 7.3 方法invokeAny()与执行慢的任务异常 7.4 方法invokeAny()与执行快的任务异常 7.5 阅读全文
posted @ 2021-06-04 15:37 弱水三千12138 编辑
摘要:6.1 CompletionService介绍 6.2 使用CompletionService解决Future的缺点 6.3 使用take()方法 6.4 使用poll()方法 6.5 使用poll(long timeout, TimeUnit unit)方法 6.6 类CompletionServ 阅读全文
posted @ 2021-06-04 15:36 弱水三千12138 编辑
摘要:5.1 Future和Callable的介绍 5.2 方法get()结合ExecutorService中的submit(Callable<T>)的使用 5.3 方法get()结合ExecutorService中的submit(Runnable)和isDone()的使用 5.4 使用ExecutorS 阅读全文
posted @ 2021-06-04 15:35 弱水三千12138 编辑
摘要:4.3 ThreadPoolExecutor的使用 4.3.1 构造方法的测试 4.3.2 方法shutdown()和shutdownNow()与返回值 4.3.3 方法isShutdown() 4.3.4 方法isTerminating ()和isTerminated () 4.3.5 方法awa 阅读全文
posted @ 2021-06-04 15:34 弱水三千12138 编辑
摘要:4.1 Executor接口介绍 4.2 使用Executors工厂类创建线程池 4.2.1 使用newCachedThreadPool()方法创建无界线程池 4.2.2 验证newCachedThreadPool()创建为Thread池 4.2.3 使用newCachedThreadPool (T 阅读全文
posted @ 2021-06-04 15:33 弱水三千12138 编辑
摘要:3.1 Phaser的使用 3.2 类Phaser的arriveAndAwaitAdvance()方法测试1 3.3 类Phaser的arriveAndAwaitAdvance()方法测试2 3.4 类Phaser的arriveAndDeregister()方法测试 3.5 类Phaser的getP 阅读全文
posted @ 2021-06-04 15:32 弱水三千12138 编辑