ReentrantLock和synchronized的区别

1、ReentrantLock是一个类,synchronized是一个关键字,都是在JVM层面实现的互斥锁的方式。 2、功能方面ReentrantLock的功能要比synchrized更为全面,RenntrantLock能够支持公平锁和非公平锁,synchronized只能支持非公平锁、Reentr

样子的木偶 发布于 2023-12-30

AQS唤醒节点时为什么要从后往前找?

第一点:这个与AQS插入节点有关,在插入的时候,比如插入A节点到AQS队列中 ,是先使用上一个指针prev指向队列的尾,然后让AQS的tail指针指向A节点,但是这个时候AQS的尾部节点的next指针依旧指向为null没有指向 A节点,如果要从前往后查找节点这个时候刚刚插入的节点将会找不到。 另外一

样子的木偶 发布于 2023-12-24

什么是AQS

AQS就是AbstractQueuedSynchronizer抽象类,是JUC包下的基类。 JUC下很多内容都是基于AQS实现,例如ReentrantLock、ThreadPoolExecutor,阻塞队列、CountDownLatch、Semaphore、CyclicBarrier都是基于AQS实

样子的木偶 发布于 2023-12-23

synchronized的实现

synchronized是基于对象实现的。 先要对java中对象在堆内存的存储有一个了解。 以创建对象object为例: 在创建对象时一共会在堆内存中开辟三块空间,分别存储对象头、实例数据和对象填充。 在对象头中主要存储的是MarkWord、ClassPoint,其中对象的锁信息都是存储在MarkW

样子的木偶 发布于 2023-12-22

MyBatis核心配置

Mybatis的核心对象 SqlSessionFactoryBuilde SqlSessionFactoryBuilder的多个重载build()方法 由于build()方法中的参数environment和properties都可以为null,所以SqlSessionFactoryBuilder构建

样子的木偶 发布于 2023-12-14

简答题

1、什么是存储程序原理?按此原理,计算机应具有哪几大功能? 答:存储程序是指将指令以代码的形式事先输入计算机主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令、直至程序执行结束。 计算机按照此原理应该具有5大功能:数据传送功能、数据存储功能、数据处理功能、

样子的木偶 发布于 2023-12-09

压力测试

压力测试 1.1.1. Go怎么写测试用例 开发程序其中很重要的一点是测试,我们如何保证代码的质量,如何保证每个函数是可运行,运行结果是正确的,又如何保证写出来的代码性能是好的,我们知道单元测试的重点在于发现程序设计或实现的逻辑错误,使问题及早暴露,便于问题的定位解决,而性能测试的重点在于发现程序设

样子的木偶 发布于 2023-11-20

优惠卷秒杀,一人一单问题(Redis)

优惠卷秒杀,一人一单问题(Redis) 情景分析: 在发放优惠卷时商家想要发放的优惠卷的目的是为了吸引大量的客流,想要有新的用户参与进来,所以就要避免一个用户抢购多单的情况 修改秒杀业务,要求同一种优惠卷只能一人一单 流程设计 解决方案 我们先获取一下用户的id,如果是相同的用户id“同时”执行到这

样子的木偶 发布于 2023-11-20

优惠卷秒杀,添加优惠卷(Redis)

优惠卷秒杀,添加秒杀优惠卷(Redis) 正常的店铺都会发放不同种类的优惠卷,有一直都会存在的普通优惠卷,这种优惠卷力度不是很大一库存会比较大,和正常订单相同。 另外一种是大额优惠卷,库存不足需要进行抢购。 下面来设计如何添加这种优惠卷 表设计 普通优惠卷表的设计就如 CREATE TABLE `t

样子的木偶 发布于 2023-11-19

优惠卷秒杀,全局唯一ID生成(Redis)

优惠卷秒杀,全局唯一ID生成(Redis) 场景分析: 商城设置优惠活动,发放优惠卷,如何实现全局唯一ID 首先是全局唯一ID 为什么一定要使用全局唯一ID 首先我们先看一看表的设计 CREATE TABLE `tb_voucher_order` ( `id` bigint NOT NULL

样子的木偶 发布于 2023-11-19

单元测试

单元测试 不写测试的开发不是好程序员。我个人非常崇尚TDD(Test Driven Development)的,然而可惜的是国内的程序员都不太关注测试这一部分。 这篇文章主要介绍下在Go语言中如何做单元测试和基准测试。 1.1. go test工具 Go语言中的测试依赖go test命令。编写测试代

样子的木偶 发布于 2023-11-17