`
wuhuajun
  • 浏览: 94743 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ThreadLocal误用导致问题

    博客分类:
  • java
 
阅读更多

 ThreadLocal为每一个线程维护变量的副本,如果不删除 下次请求还能访问到上一次的值。

测试时候tomcat只有一个工作线程。

 发送四次请求:

获取到值:0

 

设置的值:1399605191

 

获取到值:1399605191

 

设置的值:-1861096812

 

获取到值:-1861096812

 

设置的值:598344505

 

获取到值:598344505

 

设置的值:-1512093451

 

 

 


  发送三次请求:

获取到值:0

 

设置的值:358947060

 

获取到值:0

 

设置的值:-157231046

 

获取到值:0

 

设置的值:1711721300

 

 

  • 大小: 27.6 KB
  • 大小: 23 KB
分享到:
评论

相关推荐

    ThreadLocal

    1. **内存泄漏**: 当线程结束但ThreadLocal未被清除时,ThreadLocalMap中的引用会保持,可能导致内存泄漏。因此,使用完ThreadLocal后最好调用`remove`方法。 2. **弱引用**: 自JDK 8起,ThreadLocalMap的键使用了弱...

    Java[1].Bug模式详解.rar

    使用原子操作、volatile变量或者ThreadLocal可以解决此类问题。 7. **死循环**:无限循环可能导致程序无法正常终止。确保循环条件的正确性,适时添加退出条件。 8. **资源泄露**:打开的文件、数据库连接或网络...

    通信与网络中的Android程序的内存泄漏与规避方法

    - **ThreadLocal误用**:如果不正确地管理和清理ThreadLocal变量,可能导致线程局部变量长时间占用内存。 2. **内存泄漏的检测和定位**: - **内存泄漏检测**:通过观察应用程序运行时的内存占用情况,如果内存...

    Java多线程编程中易混淆的3个关键字总结

    然而,volatile并不能保证原子性,也就是说,它不能防止多个线程同时读写变量导致的数据不一致问题。因此,volatile更适合于那些不需要锁来保护其并发访问的简单变量,例如布尔标志或者简单的计数器。 2. **...

    JavaPuzzlers:JavaPuzzlers的学习

    5. **多线程与并发**:Java提供了丰富的并发工具,如synchronized、volatile、ThreadLocal等,但误用可能导致线程安全问题。理解并发原理并正确使用这些工具至关重要。 6. **异常处理**:Java的异常处理机制包括try...

    线程 - 实例详解(从初级到高级系列讲解)

    - **线程的应用与误用**:合理使用线程可以显著提升程序性能,但不正确的线程管理可能导致各种问题,如死锁、竞态条件等。 #### 二、创建与启动线程 - **创建与启动线程**:可以通过`new Thread(ThreadStart)`来...

Global site tag (gtag.js) - Google Analytics