1. Fork/Join框架 2. Executor框架 3. ThreadPoolExecutor 4. ScheduledThreadPoolExecutor 5. FutureTask 6. txt java并发框架 Fork/Join框架 定义 一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架 核心思想 分治 fork分解任务,join收集任务 工作窃取算法 定义 工作窃取算法work-stealing: 某个线程从其他队列里窃取…
1. 处理器实现原子操作 2. volatile /** 补充: 主要作用:内存可见性,是变量在多个线程中可见,修饰变量,解决一写多读的问题. 轻量级的synchronized,不会造成阻塞.性能比synchronized好得多,不支持原子性操作.为了保证原子性要使用atomic对象,只能保证本身方法的原子性,不能保证多次操作的原子性.(解决方法synchronized) 原理:当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将变量上的操作与其他内存操作一…
本文转载自公众号:石杉的架构笔记,阅读大约需要7分钟. 一.写在前面 前段时间把几年前带过的一个项目架构演进的过程整理了一个系列出来,参见(<亿级流量架构系列专栏总结>). 不过很多同学看了之后,后台反馈说文章太烧脑,看的云里雾里.其实这个也正常,文章承载的信息毕竟有限,而架构的东西细节太多,想要仅仅通过文章看懂一个系统架构的设计和落地,确实难度不小. 所以接下来用大白话跟大家聊点轻松的话题,比较易于理解,而且对大家工作和面试都很有帮助. 二.场景引入,问题初现 第一,一旦data变量定义的时…
1. 原子更新基本类型类 2. 原子更新数组 3. 原子更新引用 4. 原子更新属性 5. txt java 原子操作类Atomic 概述 java.util.concurrent.atomic里的原子操作类提供了线程安全地更新一个变量的方式 4大类型13个原子操作类 基本类型类 AtomicBoolean AtomicInteger AtomicLong 数组 AtomicIntegerArray AtomicLongArray AtomicReferenceArray 引用 AtomicRe…
img { border: solid 1px } 一.前言 多线程怎么防止竞争资源,即防止对同一资源进行并发操作,那就是使用加锁机制.这是Java并发编程中必须要理解的一个知识点.其实使用起来还是比较简单,但是一定要理解. 有几个概念一定要牢记: 加锁必须要有锁 执行完后必须要释放锁 同一时间.同一个锁,只能有一个线程执行 二.synchronized synchronized的特点是自动释放锁,作用在方法时自动获取锁,任意对象都可做为锁,它是最常用的加锁机制,锁定几行代码,如下: //---…