摘要: 乐观锁:是对同步资源加锁,但是更新的时候会判断,在此期间是否有被别的线程修改过,常见是CAS算法 悲观锁:对同步资源加锁,每一个线程进来时都要等待上一个线程释放锁,而synchronized与Lock就是悲观锁 阅读全文
posted @ 2020-11-29 20:18 jock_javaEE 阅读(102) 评论(0) 推荐(0)
摘要: 一、 /* * 1. ReadWriteLock : 读写锁 * * 写写/读写 需要“互斥” * 读读 不需要互斥 * */ public class TestReadWriteLock { public static void main(String[] args) { ReadWriteLoc 阅读全文
posted @ 2020-11-29 03:33 jock_javaEE 阅读(78) 评论(0) 推荐(0)
摘要: 一、 /* * 题目:判断打印的 "one" or "two" ? * * 1. 两个普通同步方法,两个线程,标准打印, 打印? //one two * 2. 新增 Thread.sleep() 给 getOne() ,打印? //one two * 3. 新增普通方法 getThree() , 打 阅读全文
posted @ 2020-11-29 03:21 jock_javaEE 阅读(87) 评论(0) 推荐(0)
摘要: 一、 /* * 一、用于解决多线程安全问题的方式: * * synchronized:隐式锁 * 1. 同步代码块 * * 2. 同步方法 * * jdk 1.5 后: * 3. 同步锁 Lock * 注意:是一个显示锁,需要通过 lock() 方法上锁,必须通过 unlock() 方法进行释放锁 阅读全文
posted @ 2020-11-29 03:12 jock_javaEE 阅读(95) 评论(0) 推荐(0)
摘要: 一、CountDownLatch :闭锁,在完成某些运算是,只有其他所有线程的运算全部完成,当前运算才继续执行 public void await() throws InterruptedException { }; //调用await()方法的线程会被挂起,它会等待直到count值为0才继续执行 阅读全文
posted @ 2020-11-29 02:56 jock_javaEE 阅读(86) 评论(0) 推荐(0)
摘要: 一、适当选择能够提高效率 阅读全文
posted @ 2020-11-29 02:33 jock_javaEE 阅读(92) 评论(0) 推荐(0)
摘要: 一、原子变量的作用:解决并发下多个线程操作共享数据存在,线程安全问题 原子变量 = volatile + CAS算法【又叫无锁机制】 二、 例子 package com.atguigu.juc; import java.util.concurrent.atomic.AtomicInteger; * 阅读全文
posted @ 2020-11-29 02:02 jock_javaEE 阅读(955) 评论(0) 推荐(0)