Java并发编程导致bug的因素有三个:原子性、可见性和有序性。 我们这里用一个demo来看一下可见性的问题。… 继续阅读 Java并发编程可见性bug和demo示例
月度归档: 2021年8月
单例设计模式的4种创建方式
单例模式的创建方式众多,这里列出4种创建方式,分别是懒汉式、饿汉式、静态内部类和枚举类单例。 下面的demo代… 继续阅读 单例设计模式的4种创建方式
Mybatis-plus分页插件配合导致distinct无效
首先说一下问题场景:在使用mybatis-plus进行分页,分页数据是一个一对多的查询结果集,并且,结果集的s… 继续阅读 Mybatis-plus分页插件配合导致distinct无效
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
应用访问数据库报错如下:java.sql.SQLNonTransientConnectionException… 继续阅读 java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
Java并发CyclicBarrier
CyclicBarrier能阻塞一组线程直到某个事件的发生。栅栏与闭锁的关键区别在于,所有的线程必须同时到达栅… 继续阅读 Java并发CyclicBarrier
Java并发Semaphore
Semaphore限制一个可以同时访问共享资源的总数,好比多个线程获取一定数据的许可证,获取到了许可证的都可以… 继续阅读 Java并发Semaphore
Java并发CountDownLatch
CountDownLatch是闭锁的一种应用类,允许一个或多个线程等待某些操作完成,它是采用倒数检查控制线程的… 继续阅读 Java并发CountDownLatch
代码报错ConcurrentModificationException的原因
我们在执行代码的时候,可能会遇到ConcurrentModificationException异常,这个异常是… 继续阅读 代码报错ConcurrentModificationException的原因
Java并发容器相关概念
这里先介绍一下Java并发容器相关的概念。 同步容器将容器的访问进行串行化,从而实现线程安全,这样做的缺点是多… 继续阅读 Java并发容器相关概念