`

运用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拿出来。

就是这样

分享到:
评论

相关推荐

    java事务 - threadlocal

    Java事务和ThreadLocal是两种在Java编程中至关重要的概念,它们分别用于处理多线程环境下的数据一致性问题和提供线程局部变量。...理解并熟练运用这两个概念,对于编写高效、安全的并发代码至关重要。

    threadLocal

    2. 并发编程:ThreadLocal是解决并发问题的一种策略,它提供了一种避免共享状态的方式,减少了锁的使用。 3. 内存管理:了解Java的内存模型和垃圾回收机制,才能理解ThreadLocal的内存泄漏风险和弱引用的作用。 4. ...

    java 简单的ThreadLocal示例

    在提供的"ThreadLocal示例"压缩包中,可能包含了一些具体的代码示例,展示如何在实际项目中运用ThreadLocal。通过查看这些示例,你可以更深入地理解ThreadLocal的工作方式以及如何在你的代码中有效地利用它。

    从ThreadLocal的使用到Spring的事务管理

    总结起来,ThreadLocal和Spring的事务管理是Java开发中解决并发问题和保证数据一致性的重要手段。熟练掌握这两个概念,有助于构建稳定、高效的分布式系统。通过深入学习源码和实际应用,我们可以更好地理解其工作...

    Java多线程并发访问解决方案

    在Java编程中,多线程并发...以上是Java多线程并发访问的主要解决方案,理解并熟练运用这些技术,可以有效地解决并发编程中遇到的问题,提升程序的稳定性和效率。在实际开发中,应根据具体需求选择合适的并发控制策略。

    实战Java高并发程序设计-随书代码

    《实战Java高并发程序设计》是...通过这本书的学习,读者将能够熟练运用Java并发编程的各种技术,编写出高效、稳定的高并发程序。随书代码提供了一手的实践素材,有助于加深理论知识的理解,并提高解决实际问题的能力。

    32.8、高并发线程1

    `ThreadLocal`就是为了解决这类问题而设计的。在给定的例子中,DAO层的数据库连接是一个典型的应用场景。由于DAO实例通常是单例的,其内部的`Connection`对象若作为共享变量,则不具备线程安全性。使用`ThreadLocal`...

    并发编程面试专题_并发编程_面试_源码

    10. **线程安全问题**:了解常见的线程不安全场景,如Double-Check Locking、ThreadLocal等解决方案,并能够识别和解决这些问题。 11. **Java内存模型(JMM)**:理解Java内存模型对于线程间通信的规定,以及...

    实战Java高并发程序设计-12333.pdf

    6. **并发设计模式**:如生产者消费者模型、读写锁策略、双检锁/双重校验锁(DCL)、线程局部变量(ThreadLocal)等,这些都是解决并发问题的常用设计模式。 7. **J.U.C(Java并发工具包)**:这部分将详细介绍`...

    Java ThreadLocal 线程安全问题解决方案

    Java中的ThreadLocal是解决线程安全问题的一个重要工具,它提供了一种在多线程环境下为每个线程维护独立变量副本的方法,从而避免了共享状态带来的竞态条件和线程安全问题。 线程安全问题通常由全局变量和静态变量...

    Java并发编程实践

    《Java并发编程实践》这本书深入探讨了Java平台上的并发编程技术,涵盖了从基本概念到高级策略的广泛主题。...理解和运用这些知识点,将有助于提升软件系统的并发性能,解决实际项目中遇到的并发问题。

    Java 7并发编程实战手册

    ### Java 7并发编程实战手册知识点总结 #### 一、并发编程基础 ...通过上述知识点的学习,读者不仅能够深入了解Java 7并发编程的核心概念和技术细节,还能够在实践中灵活运用这些知识,提高开发效率和程序质量。

    中等规模的并发程序设计.ppt

    【并发程序设计】在当前的多核硬件时代,并发编程已成为软件开发的重要组成部分。随着处理器核心数量的不断增加,从2007年的4核到2011年的32核,程序员需要掌握...理解并熟练运用这些知识点是构建高效并发程序的基础。

    Java并发控制机制编程开发技术共16页.pdf.zip

    在Java中,为了实现高效的并发处理,开发者可以利用一系列内置的工具和概念,如synchronized关键字、volatile变量、ThreadLocal、Lock接口、Condition、CountDownLatch、CyclicBarrier等。下面将对这些知识点进行...

    从0开始深入理解并发、线程与等待通知机制

    - **ThreadLocal**:探究导致JVM内存泄漏的问题根源及解决策略。 - **CAS与Atomic操作**:深入学习比较并交换(CAS)机制以及原子类在并发编程中的作用。 - **并发工具类与容器**:熟悉Java并发库(JUC)中的各种...

    ==========

    理解并熟练运用这些并发编程技术,可以帮助开发者构建出高效、可靠的多线程应用。在实际编程中,根据具体情况选择合适的同步策略和并发工具,可以有效地提高程序的并发性能和稳定性。同时,还需要关注死锁、活锁和...

    JAVA高质量并发详解,多线程并发深入讲解

    - **案例分析:** 分析真实世界中的并发编程问题,展示如何运用理论知识解决实际问题。 - **练习和思考题:** 旨在加深读者对并发编程的理解,并鼓励读者通过动手实践来提升编程能力。 #### 五、具体章节知识点 - *...

    阿里Java并发程序设计教程

    标题《阿里Java并发程序设计教程》揭示了这是一份面向Java...总结而言,该教程覆盖了Java并发编程的多个关键领域,为Java开发者提供了从基础知识到高级技术的全面指导,旨在帮助学习者在实践中理解和运用并发编程技术。

    线程锁+ThreadLocal.docx

    在Java多线程编程中,线程锁是一种重要的机制,用于解决多个线程同时访问共享数据时可能出现的数据不同步问题。线程锁主要通过`synchronized`关键字实现,它可以作用于方法或者代码块,确保同一时间只有一个线程能够...

    Java ️总结:JVM,NIO,并发编程,MySQL,分库分表,微服务,分布式缓-Java-Summarize.zip

    Java提供了丰富的并发工具类,如synchronized关键字、volatile变量、ThreadLocal、Future、ExecutorService等,以支持安全、高效地编写多线程程序。理解线程安全、死锁、活锁和饥饿等并发问题,以及如何避免它们,是...

Global site tag (gtag.js) - Google Analytics