240 发简信
IP属地:重庆
  • Resize,w 360,h 240
    springboot获取不到客户端ip问题排查

    一、现象 springboot从2.0.2升级到 2.5.7后线上环境无法通过request.getHeader("x-forwarded-fo...

  • 错误使用TransmittableThreadLocal让ThreadLocal变量变成线程共享

    前言 ThreadLocal能够在单个线程中传递参数,使用可以用在系统参数的传递或者在链路跟踪中传递trace相关信息,需要说明的是单单使用Th...

  • Resize,w 360,h 240
    spring事务原理

    事务有原子性、一致性、隔离性、持久性的特点,在开发中我们将一组不可分割的操作放在事务中,要么一起成功,要么一起失败,例如最简单的转账,我们看一下...

  • AQS中的condition是如何实现的

    condition的作用 condition的使用场景其实很多,涉及到条件判断的并发场景都可以用到,比如: 阻塞队列的ArrayBlocking...

  • Skywalking收集与发送链路数据部分源码解析

    链路收集大体逻辑 这里先不分析skywalking是如何自动收集数据的,而是说一下agent在收集后如何存储与发送给collector,这部分的...

  • SimpleDateFormat与DecimalFormat的并发安全

    java在做日期转换时我们会使用SimpleDateFormat做时间转换,但其实SimpleDateFormat不是线程安全的,如果Simpl...

    1.1 7035 0 17
  • AQS原理解析(二、共享模式)

    上一篇介绍了AQS独占模式的原理,参考链接AQS原理解析(一),这篇介绍一下AQS的共享模式如何实现的。 共享模式可以做什么 java conc...

  • Resize,w 360,h 240
    java多线程编程的核心——AQS独占模式原理解析

    AQS是什么 java concurrent包中有很多阻塞类如:ReentrantLock、ReentrantReadWriteLock、Cou...

  • 浅析乐观锁、悲观锁与CAS

    乐观锁与悲观锁 处理多线程并发访问最常用的就是加锁,锁又分成乐观锁和悲观锁。 悲观锁 在多线程访问共享资源时,同时只允许一个线程独享此资源,其他...