- 博客(5)
- 收藏
- 关注
原创 ThreadLocal理解与应用
首先还是自己的理解:1:ThreadLocal 是干嘛的:翻译过来意思为线程局部变量,成员变量不做任何处理的话线程是不安全的,各个线程都在操作同一个变量,显然是不行的,volatile这个关键字也不能保证线程安全,我们要满足变量是同一个,但每个线程都使用同一个初始值,也就是使用同一个变量的一个新的副本。比如说DAO的数据库连接,我们知道DAO是单例的,那么他的属性Connection就不是一个线程安全的变量。而我们每个线程都需要使用他,并且各自使用各自的。这种情况,ThreadLocal就比较好的解决了
2020-08-12 11:10:12
122
转载 通俗讲解分布式锁
一、常规锁会造成什么情况?二、分布式锁怎么去处理?三、分布式锁的实现有哪些?四、在Zookeeper中如何加锁?首先,分布式锁和我们平常讲到的锁原理基本一样,目的就是确保在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。在一个进程中,也就是一个jvm或者说应用中,我们很容易去处理控制,在jdk java.util并发包中已经为我们提供了这些方法去加锁,比如synchronized关键字或者Lock锁,都可以处理。但是我们现在的应用程序如果只部署一台服务器,那并发量是很差的,.
2020-08-10 16:11:31
152
转载 使用Java 8 的 Optional 类进行优雅的判空
你是否曾经被 NullPointerException 异常折磨的苦不堪言?你是否曾为复杂的POJO 类写非空判断,为那多个 if xxx != null 或多层嵌套 if xxx != null 的代码感到烦恼心累?呐,程序猿们,我们是时候用Java 8 的 Optional 类进行优雅的判空啦,当然,如果你用的是 Java 8 的话(:з」∠)。Optional 是什么?java.util.Optional 类是 Java 8 引入的一个新的类,是一个容器,可以保存类型为T的值,也可以保存null
2020-07-31 16:07:06
1311
1
原创 用策略模式实现代码 if/else优化
interface Strategy {void run() throws Exception;}class FastStrategy implements Strategy {@Overridevoid run() throws Exception {// 快速执行逻辑}}class NormalStrategy implements Strategy {@Overridevoid run() throws Exception {// 正常执行逻辑}}class Smooth
2020-07-30 17:32:39
194
转载 Spring声明式事务@Transactional 详解,事务隔离级别isolation和事务传播行为Propagation
@Transactional注解支持9个属性的设置,这里只讲解其中使用较多的三个属性:readOnly、propagation、isolation。其中propagation属性用来枚举事务的传播行为,isolation用来设置事务隔离级别,readOnly进行读写事务控制。一、readOnly读写事务控制readOnly=true表明所注解的方法或类只是读取数据。readOnly=false表明所注解的方法或类是增加,删除,修改数据。二、isolation事务隔离级别我们在使用事务过程中,通常会发
2020-07-30 14:57:20
1199
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人