JUC
颜颜颜颜颜越
这个作者很懒,什么都没留下…
展开
-
Lock(ReentrantLock)
为什么会出现Locksynchronized是性能低效的。因为这是一个重量级操作,它对性能最大的影响是阻塞的是实现,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给系统的并发性带来了很大的压力。相比之下使用Java提供的Lock对象,性能更高一些。到了JDK1.6,发生了变化,对synchronize加入了很多优化措施,有自适应自旋,锁消除,锁粗化,轻量级锁,偏向锁等等。导致在JDK1.6上synchronize的性能并不比Lock差。官方也表示,他们也更支持synchronize,在未来的原创 2020-10-07 11:15:42 · 200 阅读 · 0 评论 -
Synchronized详解
Synchronized基本理解synchronized关键字是为了解决并发编程中的线程安全问题而实现的关键字。synchronized的思想就是给对象加上一个锁,这锁可以叫做对象锁,也可以叫排他锁。synchronized关键字有三种使用方式:普通同步方法(实例方法),锁是当前实例对象 ,进入同步代码前要获得当前实例的锁静态同步方法,锁是当前类的class对象 ,进入同步代码前要获得当前类对象的锁同步方法块,锁是括号里面的对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。synch原创 2020-10-06 21:52:20 · 516 阅读 · 0 评论 -
ThreadLocal详解
基本概念ThreadLocal的基本作用就是数据隔离,填充的数据只属于当前线程,变量的数据对别的线程而言是隔离的。隔离用在哪里?spring实现事务隔离的底层就使用了ThreadLocal。保证单个线程中的数据库操作使用的是同一个数据库连接。同时采用这种返回格式可以使业务层使用事务不需要感知并且管理connection对象,通过传播级别,穷啊秒的管理多个事务配置之间的切换 挂起 和 恢复。Spring框架里面就是用的ThreadLocal来实现这种隔离,主要是在TransactionSynchro原创 2020-10-06 21:20:40 · 200 阅读 · 0 评论