
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
线程安全问题案例两个线程对初始值为 0 的静态变量一个做自增,一个做自减,各做 5000 次,结果是 0 吗?@Slf4j(topic = "c.ThreadSafe")public class ThreadSafe {public static int counter = 0;public static void main(String[] args) throws InterruptedExc

1.2 集群搭建使容器 mq02 称为从节点,容器 mq01 为主节点使容器 mq03 称为从节点,容器 mq01 为主节点1.3 查看集群状态进入任意一个容器内,输入以下命令查看集群状态:
一、String 类型1.1 介绍String 类型,也就是字符串类型,是 Redis 中最简单的存储类型。其 value 是字符串,不过根据字符串的格式不同,又可以分为 3 类:string:普通字符串int:整数类型,可以做自增、自减操作float:浮点类型,可以做自增、自减操作不管是哪种格式,底层都是字节数组形式存储,只不过是编码方式不同。字符串类型的最大空间不能超过 512M。keyval
一、Servlet API1、Servlet 接口
调用 Web 资源给域对象传值。pagerequestsessionapplication业务数据的绑定是指将业务数据绑定给 JSP 域对象,业务数据的绑定是由 ViewResolver 来完成的,开发时,我们先添加业务数据,再交给 ViewResolver 来绑定。Spring MVC 提供了以下几种方式来添加业务数据:MapModelModelAndVIew@SessionAttribute@
一、异步秒杀思路来看下之前的秒杀业务的整体流程:前端发起请求到达 Nginx,Nginx 通过负载均衡,将请求转发至 Tomcat。在 Tomcat 中,程序的执行流程如上图所示,整个业务流程串行执行,所以,整个业务的耗时时间就是每一步的耗时之和。但是,在整个业务流程中,其中,查询优惠券、查询订单、减库存以及创建订单这四步都需要与数据库建立连接,执行相关的增删改查操作。由于数据库本身的并发能力是比
一、消息队列简介消息队列(Message Queue),字面意思就是存放消息的队列。最简单的消息队列模型包括 3 个角色:消息队列:存储和管理消息,也被称为消息代理(Message Broker)生产者:发送消息到消息队列消费者:从消息队列获取消息并处理消息消息队列和阻塞队列的区别:① 消息队列是在 JVM 以外的独立服务,所以不受 JVM 内存的限制② 消息队列不仅仅做数据存储,还需要确保数据安
一、HyperLogLog 用法UV:全称 Unique Visitor,也叫独立访客量,是指通过互联网访问、浏览这个网页的自然人、1 天内同一个用户多次访问该网站,只记录 1 次。PV:全称 Page View,也叫页面访问量或点击量,用户每访问网站的一个页面,记录一次 PV,用户多次打开页面,则记录多次 PV。往往用来衡量网站的流量。UV 统计在服务端做会比较麻烦,因为要判断该用户是否已经统计
一、基于 SETNX 实现的分布式锁存在的问题基于 SETNX 实现的分布式锁存在下面的问题:1、不可重入:同一个线程无法多次获取同一把锁2、不可重试:获取锁只尝试一次就返回 false,没有重试机制3、超时释放:锁超时释放虽然可以避免死锁,但如果是业务执行耗时较长,也会导致锁释放,存在安全隐患4、主从一致性:如果 Redis 提供了主从集群,主从同步存在延迟,此时某个线程从主节点中获取到了锁,但