一,Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。在Lock接口出现之前,Java程序是靠synchronized关键字实现锁功能的,而Java SE 5之后,并发包中新增了Lock ...
分类:
其他好文 时间:
2020-03-30 12:41:32
阅读次数:
83
1)锁的概念 同步方式: 锁 原子变量 volatile 锁的性能优化 缩小锁的范围 减小锁的粒度 锁分段 锁的分类 公平锁:synchronized, ReentrantLock 非公平锁: ReentrantLock, CAS(自旋锁) 独享锁: synchronized, ReentrantL ...
分类:
其他好文 时间:
2020-03-26 23:09:46
阅读次数:
73
1、什么是CAS? CAS:Compare and Swap,即比较再交换。 jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证同步的,这是 ...
分类:
其他好文 时间:
2020-03-26 09:28:00
阅读次数:
70
SQL优化 JVM优化 hashmap的原理 hashmap碰撞解决办法 mysql数据库隔离级别 mysql乐观锁和悲观锁 线程池的原理 知道哪些设计模式,如何使用 spring的原理 spring IOC和AOP synchronized关键字的作用,使用场景 synchronized和lock ...
分类:
编程语言 时间:
2020-03-25 23:49:41
阅读次数:
147
1.锁是干什么用的 锁一般来说用作资源控制,限制资源访问,防止在并发环境下造成数据错误2.重入锁 重入锁也叫作递归锁,指的是同一个线程外层函数获取到一把锁后,内层函数同样具有这把锁的控制权限 synchronized和ReentrantLock就是重入锁对应的实现 synchronized重量级的锁 ...
分类:
其他好文 时间:
2020-03-25 19:45:19
阅读次数:
83
1.锁是干什么用的 锁一般来说用作资源控制,限制资源访问,防止在并发环境下造成数据错误 2.重入锁 重入锁也叫作递归锁,指的是同一个线程外层函数获取到一把锁后,内层函数同样具有这把锁的控制权限 synchronized和ReentrantLock就是重入锁对应的实现 synchronized重量级的 ...
分类:
其他好文 时间:
2020-03-25 19:29:22
阅读次数:
93
1.锁是干什么用的 锁一般来说用作资源控制,限制资源访问,防止在并发环境下造成数据错误 2.重入锁 重入锁也叫作递归锁,指的是同一个线程外层函数获取到一把锁后,内层函数同样具有这把锁的控制权限 synchronized和ReentrantLock就是重入锁对应的实现 synchronized重量级的 ...
分类:
其他好文 时间:
2020-03-25 16:22:04
阅读次数:
90
重入锁也叫作递归锁,指的是同一个线程外层函数获取到一把锁后,内层函数同样具有这把锁的控制权限 synchronized和ReentrantLock就是重入锁对应的实现 synchronized——重量级的锁 ReentrantLock——轻量级的锁 lock()代表加入锁 unlock()代表释放锁 ...
分类:
其他好文 时间:
2020-03-25 16:15:56
阅读次数:
64
1.ConcurrentHashMap ConcurrentHashMap使用分段锁保证线程安全,效率比使用synchronized的HashTable高很多,每个集合都可以看做一个存储东西的房子,HashTable与ConcurrentHashMap存储的都是HashEntry数组(每个数组里面是链表)
分类:
其他好文 时间:
2020-03-25 12:07:56
阅读次数:
109
前言: 一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在Java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列 中)。 取到锁后,他就开始执行同步代码(被synch ...
分类:
编程语言 时间:
2020-03-24 23:11:43
阅读次数:
90