![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC学习笔记
Linsanity2021
这个作者很懒,什么都没留下…
展开
-
JUC个人学习笔记19---各种锁的理解
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=147615033930317940751.公平锁/非公平锁公平锁:非常公平,不能插队,先来后到非公平锁:可以插队(默认)public ReentrantLock() { sync = new NonfairSync();}public ReentrantLock(boolean.原创 2020-09-15 19:58:23 · 118 阅读 · 0 评论 -
JUC个人学习笔记18---原子引用
根据b站UP主狂神说JUC课程所写的个人学习笔记 视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075解决aba问题,引入原子引用带版本号的原子操作public class CASDemo { //cas 比较并交换//Integer public static void main(String[] args) {// .原创 2020-09-15 13:01:08 · 158 阅读 · 0 评论 -
JUC个人学习笔记17---CAS
根据b站UP主狂神说JUC课程所写的个人学习笔记 视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075什么是casCAS是英文单词Compare and Swap的缩写,翻译过来就是比较并替换。CAS机制中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对原创 2020-09-15 12:33:23 · 93 阅读 · 0 评论 -
JUC个人学习笔记16---单例模式
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075饿汉式,懒汉式饿汉式public class Hungry { //可能会浪费空间 private byte[] data1 = new byte[1024*1024]; private Hungry(){ } privat原创 2020-09-15 12:06:59 · 104 阅读 · 0 评论 -
JUC个人学习笔记15---Volatile
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=147615033930317940751.保证可见性public class JMMDemo { //不加volatile程序就会死循环 //加volatile保证可见性 private volatile static int num = 0; public static.原创 2020-09-15 08:49:09 · 130 阅读 · 0 评论 -
JUC个人学习笔记14---JMM
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075请你谈谈对volatile的理解volatile是java虚拟机提供的轻量级的同步机制1.保证可见性2.不保证原子性3.禁止指令重排什么是JMMJMM:java内存模型,不存在的东西,概念关于JMM的一些同步的约定:1.线程解锁前,必须把.原创 2020-09-14 11:35:26 · 153 阅读 · 0 评论 -
JUC个人学习笔记13---异步回调
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075Future设计的初衷是对将来的某个事件建模//异步调用: CompletableFuture//成功回调//失败回调public class Demo01 { public static void main(String[] args) throw.原创 2020-09-14 10:56:43 · 110 阅读 · 0 评论 -
JUC个人学习笔记12--ForkJoin
根据b站UP主狂神说JUC课程所写的个人学习笔记 视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075Forkjoin在jdk1.7,并行执行任务,提高效率,大数据量大数据:Map Reduce(把大任务拆分为小任务)Forkjoin特点:工作窃取维护的都是双端队列Forkjoin//求和计算//3 6(forkjoin) 9 (stre原创 2020-09-14 10:32:08 · 175 阅读 · 0 评论 -
JUC个人学习笔记11---Stream流式计算
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075什么是Stream流式计算大数据:存储+计算存储:集合,mysql本质就是存储东西的计算都应该交给流来操作//选出年龄必须大于23,id为偶数,用户名大写,倒着排序,只输出一个用户public class Test { public..原创 2020-09-14 09:07:32 · 115 阅读 · 0 评论 -
JUC个人学习笔记10---四大函数式接口
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075新时代的程序员:lambda表达式,链式编程,Stream流式计算,函数式接口函数式接口:只有一个方法的接口,比如runnable接口public interface Runnable { /** * When an object imple.原创 2020-09-13 22:35:25 · 130 阅读 · 0 评论 -
JUC个人学习笔记9---线程池
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075线程池:三大方法,7大参数,4种拒绝策略池化技术程序的运行本质:占用系统的资源,优化cpu资源的使用线程池 连接池 对象池//....创建和销毁十分浪费资源池化技术:事先准备好一些资源,有人要用就来我这里拿,用完后还给我。线程池的好处:...原创 2020-09-13 19:05:06 · 133 阅读 · 0 评论 -
JUC个人学习笔记8---阻塞队列
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075阻塞队列阻塞队列:BlockingQueue 不是新的东西什么时候会使用阻塞队列:多线程并发处理,线程池学会使用队列1.添加2.移除四组api1.抛出异常2.不会抛出异常3.阻塞等待4.超时等待方式 抛出异常原创 2020-09-12 16:41:54 · 152 阅读 · 0 评论 -
JUC个人学习笔记7-读写锁
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075ReadWriteLock读的时候可以多线程读,写的时候只能一个写//独占锁(写锁)//共享锁(读锁)//1.读-读 可以共存2.读-写 不能共存3.写-写 不能共存public class ReadWriteLockDemo { public .原创 2020-09-12 15:22:10 · 108 阅读 · 0 评论 -
JUC个人学习笔记6---常用辅助类
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=147615033930317940758.常用的辅助类8.1CountDownLatch//计数器public class CountDownLatchDemo { public static void main(String[] args) throws InterruptedEx.原创 2020-09-12 14:34:44 · 118 阅读 · 0 评论 -
JUC个人学习笔记5--Callable
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=147615033930317940751.可以有返回值2.可以抛出异常3.方法不同 run(),call()4.代码测试public class CallableTest { public static void main(String[] args) throws...原创 2020-09-12 10:25:49 · 88 阅读 · 0 评论 -
JUC个人学习笔记4--集合类不安全
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075list不安全CopyOnWriteArrayList//java.util.ConcurrentModificationException 并发修改异常public class ListTest { //并发下arraylist是不安全的 .原创 2020-09-12 09:12:52 · 84 阅读 · 0 评论 -
JUC个人学习笔记3---八锁现象
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075//关于锁的8个问题//1.标准情况下,两个线程先打印 发短信 还是打电话?//2.发短信延迟4s 两个线程先打印 发短信还是打电话import java.util.concurrent.TimeUnit;public class Test1 { .原创 2020-09-11 19:11:48 · 218 阅读 · 0 评论 -
JUC个人学习笔记2---生产者消费者问题
根据b站UP主狂神说JUC课程所写的个人学习笔记 视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075锁是什么?如何判断锁的是谁4.生产者和消费者问题synchronized版本 wait notifypublic class A { public static void main(String[] args) { Data da.原创 2020-09-11 16:27:51 · 129 阅读 · 0 评论 -
JUC个人学习笔记1---Lock锁
根据b站UP主狂神说JUC课程所写的个人学习笔记视频地址:https://www.bilibili.com/video/BV1B7411L7tE?from=search&seid=14761503393031794075传统SynchronizedLock接口公平锁十分公平,可以先来后到非公平锁,可以插队(默认)lock三部曲:1.new ReentrantLock()2.lock.lock()加锁3.finally里解锁,业务代码放..原创 2020-09-11 15:21:44 · 146 阅读 · 0 评论