JAVA并发编程
介绍并发编程知识,讲述多线程、线程池,并发控制等知识
記憶的深藍
认证思考,对于复杂的东西,一定要通过画流程图理清楚
展开
-
如何解决ABA问题
问题:多个线程修改同一个变量,解决:加版本原创 2020-05-14 20:37:41 · 214 阅读 · 0 评论 -
Java concurrent
OverviewJava平台包含一系列并发实用程序。 这些类被设计成在构建并发类或应用程序时用作构建块。 就像集合框架通过提供常用数据结构的实现简化了内存数据的组织和操作一样,并发实用程序通过提供并发设计中常用的构建块的实现来简化并发类的开发。 并发实用程序包括:高性能,灵活的线程池; 异步执行任务框架; 同步实用程序(如计算信号量); 原子变量;锁;和条件变量使用并发实...翻译 2018-02-26 15:08:53 · 1029 阅读 · 0 评论 -
Java 手动创建线程池
oracle提供了一个通过ThreadPoolExecutor创建一个线程池的类构造器使用给定的参数和默认的饱和策略、默认的工厂方法创建线程池ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runna...原创 2018-03-28 11:38:30 · 16292 阅读 · 2 评论 -
Java线程之间如何通信
线程开始运行,拥有自己的栈空间。线程之间的通信给线程带来了巨大的价值Volatile与Synchronized关键字问题引出: 使用volatile修饰int型变量i,多个线程同时进行i++操作,这样可以实现线程安全吗?volatile修饰的变量具有可见性。可见性也就是说一旦某个线程修改了该被volatile修饰的变量,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时...原创 2018-04-01 08:59:38 · 1208 阅读 · 0 评论 -
Fork/Join框架
Fork/Join框架是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架public class CountTask extends RecursiveTask<Integer> { private static final int THRESHOLD = 2; private int start; private int e...原创 2018-04-02 18:03:19 · 960 阅读 · 0 评论 -
Java 线程状态
线程在运行的生命周期中可能处于下列6种状态的一种,在某一时刻,线程只能处于其中的某一个状态,Thread.State中定义了这六种状态public enum State { /** * 初始状态:线程被创建,但是没有调用调用start() */ NEW, /** * 运行状态:java线程...原创 2018-04-04 15:02:57 · 956 阅读 · 0 评论 -
Java 内存模型
关于并发编程主内存和工作内存主内存和工作内存交互原子性、可见性、有序性参考关于并发编程在并发编程领域,有两个关键问题:线程之间的通信和同步。主内存和工作内存Java内存模型主要目标是定义程序中各个变量的访问权限,即将变量存储到内存和从内存中取出的过程,此处的变量不同于程序中的变量。实例字段,静态字段、构成数组对象的元素,但是不包含局部变量和方法参数,因为他们...原创 2018-04-05 14:01:10 · 942 阅读 · 0 评论