分类树查询功能,在各个业务系统中可以说随处可见,特别是在电商系统中。但就是这样一个简单的分类树查询功能,我们却优化了5次。到底是怎么回事呢?背景我们的网站使用了SpringBoot推荐的模板引擎:Thymeleaf,进行动态渲染。它是一个X...
今天给大家分享一个话题,就是如果要是你老板突然要求你把你负责的系统,要接入到春晚中去抗下春晚带来的超大流量,你会感到心里特别慌,然后特别没底吗?我估计大部分兄弟应该都会感到很慌很没底,不过没事,今天我们就来给大家讲讲,如果咱们系统要接入春晚...
在开发中,往往会遇到一些关于延时任务的需求。例如生成订单30分钟未支付,则自动取消生成订单60秒后,给用户发短信对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一...
java并发编程中,锁无处不在。java的容器框架中,也提供了满足各种场景的锁。但是,有一个共性就是,他们都是基于AbstractQueuedSynchronizer(AQS)。 下面,使用CAS和AQS实现一...
前面分析了AQS-ReentrantLock(重入锁),接着分析CountDownLatch(共享锁) CountDownLatch(共享锁)也是是同步工具类之一,可以指定一个计数值(count),在并发环境下...
Java除了使用关键字synchronized加锁外,还可以使用ReentrantLock实现独占锁的功能。而且ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。...
单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。在并发编程中单例模式是否能真的能只创建一个对象呢?如何保障对象的唯一性?通过举例分析一下。一、饿汉式pub...
一、什么是CAS1.1、说明CAS的全称为:Compare And Swap,直译就是比较交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值,其实现方式是基于硬件平台的汇编指令,在intel的...
一,AQS简介AQS的全称为(Abstract Queued Synchronizer),这个类是在java.util.concurrent.locks下面。AQS中文为队列同步器,是用来构建锁或者其他同步组件的基础框架。它提供了一个FIF...
多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是:对象、变量、文件等。共享:资源可以由多个线程同时访问。可变:资源可以在其生命周期内被修改。由于线程执行的过程是不可控的,所以...