• 深入理解JVM: (六)JMM与线程(2):JAVA与线程

    线程概念线程是比进程更轻量级的调度单位,是JAVA里面进行处理器资源调度的最基本单位,实现线程主要有三种方式:使用内核线程实现(1:1实现)、使用用户线程实现(...

    深入理解JVM: (八)锁优化(完结)

    一、锁优化概念1.1自旋锁互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都不可避免地需要在用户态和内核态进行切换,这些操作给JAVA虚拟地并发性...

    记录一个非常低级的bug

    凌晨接到测试的一个电话,说灰度上有我一个bug,我立马打开电脑,查看线上灰度日志,居然是一个空指针,最近在导出加了一个需求,之前提测的时候,导出也报过一个空指针...

    手写分布式事务(2PC)

    tx-distribute项目地址:https://gitee.com/back1968/tx-di...

    浅析工作中使用的分布式事务

    前言:在Spring中,事务有两种实现方式:编程式事务管理:编程式事务管理使用底层源码可实现更细粒度的事务控制。即事务只攘括需要执行sql的那部分逻辑,这样做的...

    金额计算中如何处理浮点类型的精度问题

    在大多数的商业计算中,一般采用java.math.BigDecimal类来进行精确计算。使用步骤:1...

    sql层面如何保证库存的准确性

    一般库存的操作主要涉及到两个点,一个是并发下库存的扣减,保证业务上不会发生超卖导致库存负数问题(某些业务场景下是允许超卖的),另外一个是,新增库存,也就是说更新...

    手写分布式锁

    实现分布式锁的方式有很多,可以通过redis、mysql、zk等方式去实现一个分布式锁。什么情况下需要用到分布式锁呢?一种是多个微服务实例,另外一种是在多线程的...

    什么是不可变对象

    什么是不可变对象,个人理解,比较简单的来说,就是这个引用所关联对象的信息不会发生变化。众所周知,String对象是不可变的,它是如何做到不可变的呢?如下图所示:...

    Saas平台如何实现文件的导出?

    最近在重构以往文件导出的一部分代码,在重构之前我先摸索了了下,文件导出的整体链路以及实现方式,惊讶地发现,对于Saas平台系统而言,文件导出其实是一个普遍但考虑...