运用ThreadLocal解决并发

 需求:在BI的报表查询中,如果有多个用户同时查询报表,会使报表结果混乱,因为并发了。

解决:使用ThreadLocal。具体如下:

1.定义成员变量

private ThreadLocal<ReportBean> reportBeanLocal = new ThreadLocal<ReportBean>();

2.在报表查询前前,先初始化成员变量,切记要先remove(),否则会乱:

private void beforeSearch(){

reportBeanLocal.remove();

                f (reportBeanLocal.get()==null) {

ReportBean totalColumn = new ReportBean();

reportBeanLocal.set(totalColumn);

}

}

3.通过reportBeanLocal.get().setDoorCount(1)的方式,可以往reportBeanLocal里的ReportBean设置值。

4.通过reportBeanLocal.get()的方法可以把reportBeanLocal里的ReportBean拿出来。

就是这样

猜你喜欢

转载自yjf565111293.iteye.com/blog/2267277
今日推荐