
JUC
文章平均质量分 91
夜來风羽声
这个作者很懒,什么都没留下…
展开
-
同步容器及线程池
同步容器1.容器体系CollectionListSetQueueMapHashQueue - 主要是为了高并发准备的具体如下图所示:2.ConcurrentHashMap发展(HashTable-> CHM)JDK1.0 :Vector(相当于后来的List)HashTable(相当于后来的map) 都加了锁(基本不用)发展:HashTable(方法上加锁)HashMap(不加锁,线程不安全)通过工具类加锁Collections.synchronize原创 2021-11-16 17:46:42 · 1677 阅读 · 0 评论 -
ThreadLocal及强软弱虚引用
1.threadLocalstatic ThreadLocal<Person> tl = new ThreadLocal();上述threadLocal在创建的时候是在各自的线程中创建一个person对象疑问:为什么tl.get()获取不到person呢?用途:声明式事务的时候,有多个数据库连接,我们将多次连接操作表示一个事务,那么我们怎么获得每个会话的同一个连接呢,那么连接放到threadlocal中,下次不在从连接池中取,而是从threadLocal中取拦截器中将当前登录用原创 2021-11-11 15:56:10 · 494 阅读 · 0 评论 -
ReentrantLock
ReentrantLock原文:https://blog.youkuaiyun.com/u012988901/article/details/1125576661.简介ReentrantLock是JDK1.5是在juc里面新增的一个基于AQS的同步等待队列的独占模式实现的一种锁,它比synchronized更灵活,可以自己控制加锁和解锁的逻辑,也跟synchronized一样是可重入锁.提供了公平和非公平两种模式:公平锁:多个线程争夺锁时,会先判断等待队列中是否有等待的线程节点,如果有就排队,锁获取的顺序原创 2021-11-09 17:58:48 · 88 阅读 · 0 评论