多线程
文章平均质量分 93
zzqtty
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
代码理解java多线程 (三) - JDK工具篇(7)- Java 8 Stream并行计算原理 计划任务
目录 第十九章 Java 8 Stream并行计算原理 19.1 Java 8 Stream简介 19.2 Stream单线程串行计算 19.3 Stream多线程并行计算 19.4 从源码看Stream并行计算原理 19.5 Stream并行计算的性能提升 第二十章 计划任务 20.1 使用案例 20.2 类结构 20.3 主要方法介绍 20.3.1 schedule 20.3.2 scheduledAtFixedRate 20.3.3 scheduledAtFixedDelay原创 2021-04-17 12:49:54 · 387 阅读 · 0 评论 -
代码理解java多线程 (三) - JDK工具篇(6)- 通信工具类 & Fork/Join框架
目录 第十七章 通信工具类 17.1 Semaphore 17.1.1 Semaphore介绍 17.1.2 Semaphore案例 17.1.3 Semaphore原理 17.2 Exchanger 17.3 CountDownLatch 17.3.1 CountDownLatch介绍 17.3.2 CountDownLatch案例 17.3.3 CountDownLatch原理 17.4 CyclicBarrier 17.4.1 CyclicBarrier介绍 17.4.2 C原创 2021-04-12 23:13:40 · 379 阅读 · 1 评论 -
代码理解java多线程 (三) - JDK工具篇(3)- 锁接口和类
目录 第十四章 锁接口和类 14.1 synchronized的不足之处 14.2 锁的几种分类 14.2.1 可重入锁和非可重入锁 14.2.2 公平锁与非公平锁 14.2.3 读写锁和排它锁 14.3 JDK中有关锁的一些接口和类 14.3.1 抽象类AQS/AQLS/AOS 14.3.2 接口Condition/Lock/ReadWriteLock 14.3.3 ReentrantLock 14.3.4 ReentrantReadWriteLock 14.3.5 Stamped原创 2021-04-09 18:32:20 · 141 阅读 · 0 评论 -
代码理解java多线程 (三) - JDK工具篇(2)- 阻塞队列
第十三章 阻塞队列 13.1 阻塞队列的由来 我们假设一种场景,生产者一直生产资源,消费者一直消费资源,资源存储在一个缓冲池中,生产者将生产的资源存进缓冲池中,消费者从缓冲池中拿到资源进行消费,这就是大名鼎鼎的生产者-消费者模式。 该模式能够简化开发过程,一方面消除了生产者类与消费者类之间的代码依赖性,另一方面将生产数据的过程与使用数据的过程解耦简化负载。 我们自己coding实现这个模式的时候,因为需要让多个线程操作共享变量(即资源),所以很容易引发线程安全问题,造成重复消费和死锁,尤其是生产者和原创 2021-04-09 18:11:08 · 199 阅读 · 0 评论 -
代码理解java多线程 (三) - JDK工具篇(1)
目录 第十二章 线程池原理 12.1 为什么要使用线程池 12.2 线程池的原理 12.2.1 ThreadPoolExecutor提供的构造方法 12.2.2 ThreadPoolExecutor的策略 12.2.3 线程池主要的任务处理流程 12.2.4 ThreadPoolExecutor如何做到线程复用的? 12.3 四种常见的线程池 12.3.1 newCachedThreadPool 12.3.2 newFixedThreadPool 12.3.3 newSingleThr原创 2021-04-09 17:43:07 · 167 阅读 · 0 评论 -
代码理解java多线程 (二) - 原理篇(2)
目录 第八章 volatile 8.1 几个基本概念 8.1.1 内存可见性 8.1.2 重排序 8.1.3 happens-before规则 8.2 volatile的内存语义 8.2.1 内存可见性 8.2.1 禁止重排序 8.3 volatile的用途 第九章 synchronized与锁 9.1 Synchronized关键字 9.2 几种锁 9.2.1 Java对象头 9.2.2 偏向锁 9.2.3 轻量级锁 9.2.4 重量级锁 9.2.5 总结锁的升级流程原创 2021-04-09 17:23:40 · 228 阅读 · 0 评论 -
代码理解java多线程 (二) - 原理篇(1)
目录 第六章 Java内存模型基础知识 6.1 并发编程模型的两个关键问题 6.2 Java内存模型的抽象结构 6.2.1 运行时内存的划分 6.2.2 既然堆是共享的,为什么在堆中会有内存不可见问题? 6.2.3 JMM与Java内存区域划分的区别与联系 第七章 重排序与happens-before 7.1 什么是重排序? 7.2 顺序一致性模型与JMM的保证 7.2.1 数据竞争与顺序一致性 7.2.2 顺序一致性模型 7.2.3 JMM中同步程序的顺序一致性效果 7.2.4原创 2021-04-06 21:50:43 · 112 阅读 · 0 评论 -
代码理解java多线程 (一) - 基础篇(2)
目录 第四章 Java线程的状态及主要转化方法 4.1 操作系统中的线程状态转换 4.2 Java线程的6个状态 4.2.1 NEW 4.2.2 RUNNABLE 4.2.3 BLOCKED 4.2.4 WAITING 4.2.5 TIMED_WAITING 4.2.6 TERMINATED 4.3 线程状态的转换 4.3.1 BLOCKED与RUNNABLE状态的转换 4.3.2 WAITING状态与RUNNABLE状态的转换 4.3.3 TIMED_WAITING与RUN.原创 2021-04-05 22:55:38 · 168 阅读 · 0 评论 -
代码理解java多线程 (一) - 基础篇(1)
第一章 进程与线程的基本概念 1.1 进程产生的背景 最初的计算机只能接受一些特定的指令,用户每输入一个指令,计算机就做出一个操作。当用户在思考或者输入时,计算机就在等待。这样效率非常低下,在很多时候,计算机都处在等待状态。 批处理操作系统 后来有了批处理操作系统,把一系列需要操作的指令写下来,形成一个清单,一次性交给计算机。用户将多个需要执行的程序写在磁带上,然后交由计算机去读取并逐个执行这些程序,并将输出结果写在另一个磁带上。 批处理操作系统在一定程度上提高了计算机的效率,但是由于批处理操作系原创 2021-04-05 22:05:01 · 383 阅读 · 1 评论 -
多线程 - 练习题(二)
第四章 为何应该避免使用线程组 竞态条件使得大多数方法废弃 package thread; import java.util.Timer; import java.util.TimerTask; public class t201909101 { static volatile int i = 1; public static void main(Stri...原创 2019-09-10 19:10:01 · 152 阅读 · 0 评论 -
多线程 - 练习题(一)
第一章节 线程的定义 一条在程序代码中独立执行的路径 给出runnable的定义 一段封装在对象中的代码序列,它的类实现了runnable接口 thread类和runnable接口完成了什么 类thread提供了一个底层操作系统线程架构的统一。runnable接口为关联thread对象的线程提供执行代码。 创建一个runnable对象的两种方式 创建一个实现了run...原创 2019-09-10 13:57:58 · 323 阅读 · 0 评论 -
多线程 - 选择
原创 2019-09-03 13:58:35 · 156 阅读 · 0 评论 -
代码理解多线程(三)
非多线程安全容器ArrayList package test19218; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; impo...原创 2019-02-20 11:06:37 · 159 阅读 · 0 评论 -
代码理解多线程(二)
volatile 到底有什么用? package test19218; import java.util.ArrayList; import java.util.List; public class ListAdd1 { //变量 private static List list = new ArrayList(); ...原创 2019-02-19 14:39:03 · 230 阅读 · 0 评论 -
代码理解多线程(一)
多线程访问会有什么问题?? public class TestMyThread extends Thread{ //共享变量 private int a = 5; //重写run方法 @Override public void run(){ a--; System.ou...原创 2019-02-18 17:54:13 · 233 阅读 · 0 评论
分享