Author Archive

伪共享

2.2.9 伪共享

2.2.9.1什么是伪共享

计算机系统中为了解决主内存与CPU运行速度的差距,在CPU与主内存之间添加了一级或者多级高速缓冲存储器(Cache),这个Cache一般是集成到CPU内部的,所以也叫 CPU Cache,如下图是两级cache结构:

Read more

线程池使用FutureTask时候需要注意的一点事

8.4 线程池使用FutureTask时候需要注意的一点事

线程池使用FutureTask的时候如果拒绝策略设置为了 DiscardPolicyDiscardOldestPolicy并且在被拒绝的任务的Future对象上调用无参get方法那么调用线程会一直被阻塞。 Read more

线程不安全的SimpleDateFormat

8.5 SimpleDateFormat是线程不安全的

SimpleDateFormat是Java提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但是由于它是线程不安全的,多线程公用一个SimpleDateFormat实例对日期进行解析或者格式化会导致程序出错,本节就讨论下它为何是线程不安全的,以及如何避免。

Read more

诡异的类型转换

一、前言

最近在做应用迁移时候遇到了一个诡异的类型转换问题,感觉比较有意思,就记录下来和大家分享下。

Read more

浅谈AutoCloseable接口

一、前言

最近在翻看源码时候发现有些类实现了AutoCloseable接口,这个接口很生疏,所以搜了下资料,学习了下,下面做个总结。

Read more

异步打印日志的一点事

一、前言

最近刚刚结束转岗以来的第一次双11压测,收获颇多,难言言表, 本文就先谈谈异步日志吧,在高并发高流量响应延迟要求比较小的系统中同步打日志已经满足不了需求了,同步打日志会阻塞调用打日志的线程,而打日志本身是需要写磁盘的,所以会造成rt增加。异步日志就是为了解决这个问题。

Read more

实战Spring事务传播性与隔离性

一、事务传播性

1.1 什么是事务的传播性

事务的传播性一般在事务嵌套时候使用,比如在事务A里面调用了另外一个使用事务的方法,那么这俩个事务是各自作为独立的事务执行提交,还是内层的事务合并到外层的事务一块提交那,这就是事务传播性要确定的问题。下面一一介绍比较常用的事务传播性。

Read more

Spring事务配置解惑

一、项目中spring+mybaits xml配置解析

一般我们会在datasource.xml中进行如下配置,但是其中每个配置项原理和用途是什么,并不是那么清楚,如果不清楚的话,在使用时候就很有可能会遇到坑,所以下面对这些配置项进行一一解说

Read more

JDK8中新增原子性操作类LongAdder

LongAdder简单介绍

LongAdder类似于AtomicLong是原子性递增或者递减类,AtomicLong已经通过CAS提供了非阻塞的原子性操作,相比使用阻塞算法的同步器来说性能已经很好了,但是JDK开发组并不满足,因为在非常高的并发请求下AtomicLong的性能不能让他们接受,虽然AtomicLong使用CAS但是CAS失败后还是通过无限循环的自旋锁不断尝试的

Read more

JDK8中StampedLock原理探究

StampedLock是并发包里面jdk8版本新增的一个锁,该锁提供了三种模式的读写控制,三种模式分别如下:

Read more

常用Web框架SpringMVC及WebX级联容器原理探究

一、前言

使用一个东西最好研究下他的原理,因为如果知其然那么在排查问题时候会很方便,本文则针对常用web框架SpringMVC和集团的WebX框架的容器级联关系进行探究。

Read more

论Spring中循环依赖的正确性与Bean注入的顺序关系

一、前言

最近在做项目时候遇到一个奇葩问题,就是bean依赖注入的正确性与bean直接注入的顺序有关系,但是正常情况下明明是和顺序没关系的啊,究竟啥情况那,不急,让我一一道来。

Read more

Mybatis中使用流式查询避免数据量过大导致OOM

一、前言

前面介绍了裸露JDBC 方式使用流式编程,下面介绍下MYbatis中两种使用流式查询方法

Read more

Mysql中使用JDBC流式查询避免数据量过大导致OOM

一、前言

java 中MySQL JDBC 封装了流式查询操作,通过设置几个参数,就可以避免一次返回数据过大导致 OOM。

Read more

利用MongoDB 分片集群(Sharded Cluster)实现高性能大数据处理

一、前言

考虑这样一个场景,有个数据量有10多亿数据的设备库,里面存放了注册的设备的信息,并且设备数据还可能会递增,然后业务集群需要对指定条件的设备群发信息,那么如何才能高效的来处理这个问题那?

 

Read more

return top