随笔分类 - JUC
摘要:21、各种锁理解 1、公平锁和非公平锁: 公平锁:非常公平,不能够插队,必须先来后到!FIFO 非公平锁:非常不公平,可以插队(默认都是非公平) 2、可重入锁 递归锁 可重入锁synchronized 版本 1 package com.xing.lock; 2 3 //Synchorized 4
阅读全文
摘要:19、深入理解CAS 什么是CAS 1 package com.xing.cas; 2 3 import java.util.concurrent.atomic.AtomicInteger; 4 // 原子类的底层用的cas 5 public class CASDemo { 6 //compar
阅读全文
摘要:18、深入单例模式 java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个
阅读全文
摘要:16、JMM 什么是JMM JMM : Java内存模型,不存在的东西,概念!约定! 关于JMM的同步约定: 1、线程解锁前,必须把共享变量立刻刷回主存 2、线程加锁前,必须读取主存中的最新值到工作内存中! 3、加锁和解锁是同一把锁 线程 :工作内存、主内存 JMM规定了内存主要划分为主内存和工作内
阅读全文
摘要:14、Forkjoin(分支合并) 什么是 ForkJoin ForkJoin 在 JDK 1.7 , 并行执行任务!提高效率。在大数据量中! 大数据:Map Reduce (把大任务拆分为小任务) Forkjoin 特点:工作窃取,这里面维护的是双端队列 接口 通过forkjoinPool来执行f
阅读全文
摘要:12、四大函数式接口(重点) 函数接口:只有一个方法的接口 1 @FunctionalInterface 2 public interface Runnable { 3 4 public abstract void run(); 5 } 6 //超级多@FunctionalInterface 7 /
阅读全文
摘要:11、线程池(重点) 线程池 Executors:3大方法、7大参数、4种拒绝策略 池化技术 程序的运行,本质:占用系统的资源!优化资源的使用! ==> 引进了一种技术池化池 线程池、连接池、内存池、对象池… 池化技术:事先准备好一些资源,有人要用,就来我这里拿,用完之后还给我。 线程池的好处 1、
阅读全文
摘要:9、读写锁 自定义的缓存,没有加锁,就会出现一个没有写入完成,另一个突然插进来的情况 1 package com.xing.rw; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 /** 7 * ReadWriteLock
阅读全文
摘要:8、常用的辅助类 CountDownLatch 减法计数器: 实现调用几次线程后 再触发某一个任务 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 package com.xing.demo03; import java.util.concurrent.C
阅读全文
摘要:6、集合类不安全 1、并发下ArrayList 不安全 1 package com.xing.Unsafe; 2 3 import java.util.*; 4 import java.util.concurrent.CopyOnWriteArrayList; 5 6 public clas
阅读全文
摘要:5、8锁的现象 如何判断锁的是谁,锁到底锁的是谁:对象和class Test1 package com.xing.lock8; import java.util.concurrent.TimeUnit; /** * 8锁,就是关于锁的八个问题 * 1.标准情况下,两个线程去打印 先输出发短息
阅读全文
摘要:1、什么是JUC 1、什么是juc(学习方法:官方文档+源码) JUC —— (java.util.concurrent)是一个包名的缩写,java工具类下的一个并发功能的包。 该包下存放的均为多线程相关类, Runnable 没有返回值、效率相比入 Callable相对较低,但callable可以
阅读全文

浙公网安备 33010602011771号