ThreadLocal使用方法

匿名 (未验证) 提交于 2019-12-03 00:26:01

ThreadLocal:用于实现线程内部的数据共享叫线程共享(对于同一个线程内部数据一致),即相同的一段代码 多个线程来执行 ,每个线程使用的数据只与当前线程有关。



1.当存储的为基本变量或者包装对象时

  1. package
  2. /**
  3. publicclass
  4. publicstaticnew
  5. publicstaticvoid
  6. /*创建两个线程*/
  7. for(int02
  8. newnew
  9. @Override
  10. publicvoid
  11. 10
  12. /*存入当前线程独有的值*/
  13. new
  14. new
  15. staticclass
  16. publicvoid
  17. /*取得当前线程所需要的值*/
  18. staticclass
  19. publicvoid
  20. /*取得当前线程所需要的值*/

2.当存储的为对象时 就是数据集合 比如前台传过来的参数,每一个人传过来的 都是这个人独有的,才能保证数据准确性,抽取业务数据为一个对象

  1. class
  2. privatestaticnew
  3. private
  4. publicstatic
  5. if(null//当前线程无绑定的对象时,直接绑定一个新的对象
  6. new
  7. return
  8. private
  9. public
  10. return
  11. publicvoid
  12. this

把ThreadLocal 放在业务对象里面提现高内聚,实现的目的是每一个线程都有一个独立的ThreadLocalDemo对象。 使用的时候只需要 ThreadLocalDemo.getInstance()就可以得到当前线程的所需要的值。

  1. package
  2. /**
  3. publicclass
  4. publicstaticvoid
  5. for(int02
  6. newnew
  7. @Override
  8. publicvoid
  9. 10
  10. "name"
  11. new
  12. new
  13. staticclass
  14. publicvoid
  15. staticclass
  16. publicvoid


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!