基于反射、POI和OSS的异步导出工具(含同步)

2020-01-20
阅读 27 分钟
5.7k
平时我们的项目中,经常会遇到各种各样的导出需求,不管是导出何种类型的DO,同步导出还是异步导出,小数据量导出亦或是大数据量的导出,有没有一个通用的工具类,只需要ExcelHelper.export()就搞定了,而不需要自己去为各类需求编码各种各样的导出方法。

ThreadLocal弱引用与内存泄漏分析

2019-11-05
阅读 4 分钟
3.8k
首先,简单回顾一下,ThreadLocal是一个线程本地变量,每个线程维护自己的变量副本,多个线程互相不可见,因此多线程操作该变量不必加锁,适合不同线程使用不同变量值的场景。

python实现网页截屏、查库、发邮件(selenium、phantomjs、mailer、jinja2、mysqldb)

2017-12-27
阅读 5 分钟
5.4k
使用python(2.7)实现网页截屏、查库、发邮件的demo。用到了selenium、phantomjs、mailer、jinja2、mysqldb还有image,都是比较典型的用法,可复用性比较强,记录分享一下。

海量日志中统计次数最多的100个IP

2017-12-13
阅读 23 分钟
9.1k
由于标题长度限制,原题是这样:某系统QPS100万,每十分钟统计一下请求次数最多的100个IP。ip请求写到日志的话,其实就是超大文件中统计top k问题。10分钟6亿条记录,大约是10G级别,所以对于一般单机处理来讲不能一次性加载到内存计算。所以分治算法是处理这类问题的基本思想。

读写锁的java实现

2017-11-27
阅读 11 分钟
5.7k
Java中的可重入读写锁ReentrantReadWriteLock是基于AQS(AbstractQueuedSynchronizer)实现的,查看源码可以发现内部有一个Sync对象继承自AbstractQueuedSynchronizer,它用来管理同步机制,java并发包下的类基本都是用它来提供同步机制的。