摘要: 1. 用法 1.1 定义一个安全的list集合 public class LockDemo { ArrayList<Integer> arrayList = new ArrayList<>();//定义一个集合 // 定义读锁 ReentrantReadWriteLock.ReadLock read 阅读全文
posted @ 2021-01-22 16:35 雪中孤狼 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 1.用法 1.1 定义一个安全的list集合 public class LockDemo { ArrayList<Integer> arrayList = new ArrayList<>();//定义一个集合 // 定义读锁 ReentrantReadWriteLock.ReadLock readL 阅读全文
posted @ 2021-01-20 14:10 雪中孤狼 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1.创建公平锁 1.使用方式 Lock reentrantLock = new ReentrantLock(true); reentrantLock.lock(); //加锁 try{ // todo } finally{ reentrantLock.unlock(); // 释放锁 } 2.创建公 阅读全文
posted @ 2021-01-18 17:52 雪中孤狼 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 1. 存在的意义 AQS(AbstractQueuedSynchronizer)是JAVA中众多锁以及并发工具的基础,其底层采用乐观锁,大量使用了CAS操作, 并且在冲突时,采用自旋方式重试,以实现轻量级和高效地获取锁。 提供一个框架,用于实现依赖于先进先出(FIFO)等待队列的阻塞锁和相关的同步器 阅读全文
posted @ 2021-01-15 16:40 雪中孤狼 阅读(438) 评论(0) 推荐(0) 编辑
摘要: 1.为什么需要Lock 为什么synchronized不够用,还需要Lock Lock和synchronized这两个最常见的锁都可以达到线程安全的目的,但是功能上有很大不同。 Lock并不是用来代替synchronized的而是当使用synchronized不满足情况或者不合适的时候来提供高级功能 阅读全文
posted @ 2021-01-12 20:30 雪中孤狼 阅读(457) 评论(0) 推荐(1) 编辑
摘要: 1.简介 1.1 作用 在并发场景中,保证同一时刻只有一个线程对有并发隐患的代码进行操作 1.2 错误案例 需求:两个线程对 count 变量进行200000次循环增加,预期结果是400000次 public class SynchronizedDemo implements Runnable { 阅读全文
posted @ 2021-01-11 21:24 雪中孤狼 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 1.JAVA 的并发模型 共享内存模型 在共享内存的并发模型里面,线程之间共享程序的公共状态,线程之间通过读写内存中公共状态来进行隐式通信 该内存指的是主内存,实际上是物理内存的一小部分 2.JAVA 内存模型的抽象 2.1 java内存中哪些数据是线程安全的,哪些是非安全的 非线程安全 : 在 j 阅读全文
posted @ 2021-01-06 15:55 雪中孤狼 阅读(320) 评论(0) 推荐(0) 编辑
摘要: JVM 真的很难学么?不、只是你“不敢学”而已 许多招聘的信息上面都说,要了解jvm、多线程什么的对于 java 程序员来说,这是工作好多年的程序员都不一定能掌握的东西,但是面试就会问啊,你不掌握咋整你说? 为什么面试会问呢? 因为面试时间就那么一个小时半个小时的,问不出什么东西,所以许多面试官都会 阅读全文
posted @ 2020-04-29 09:21 雪中孤狼 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 在vue中一些常用的指令都是v-这样的,v-if是vue的一个内部指令,常用于html中 代码 <!DOCTYPE html> html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=dev 阅读全文
posted @ 2018-08-31 23:55 雪中孤狼 阅读(2992) 评论(0) 推荐(0) 编辑
摘要: 对于新学习一门技术,一门语言比如JAVA、Python等都是从编写Hello World开始的,这样一来有益于初学者的人门,并给予初学者一定的信心,所以我也从HelloWorld开始讲起。 干货: 对于学习新的一门技术最好都是重从它的官网开始(如果是中文的官网最好,嘿嘿,因为本人的英文水平也是有限的 阅读全文
posted @ 2018-08-30 23:37 雪中孤狼 阅读(9259) 评论(1) 推荐(1) 编辑
摘要: 1. 条件队列的意义 Condition将Object监控器方法( wait , notify和notifyAll )分解为不同的对象,从而通过与任意Lock实现结合使用,从而使每个对象具有多个等待集。 Lock替换了synchronized方法和语句的使用,而Condition替换了Object监 阅读全文
posted @ 2021-01-27 10:38 雪中孤狼 阅读(656) 评论(0) 推荐(1) 编辑
摘要: 1.错误案例 通过一个案例引出volatile关键字,例如以下代码示例 : 此时没有加volatile关键字两个线程间的通讯就会有问题 public class ThreadsShare { private static boolean runFlag = false; // 此处没有加 volat 阅读全文
posted @ 2021-01-08 10:02 雪中孤狼 阅读(384) 评论(0) 推荐(1) 编辑