ThreadLocal:用于实现线程内部的数据共享叫线程共享(对于同一个线程内部数据一致),即相同的一段代码 多个线程来执行 ,每个线程使用的数据只与当前线程有关。
1.当存储的为基本变量或者包装对象时
- package
- /**
- publicclass
- publicstaticnew
- publicstaticvoid
- /*创建两个线程*/
- for(int02
- newnew
- @Override
- publicvoid
- 10
- /*存入当前线程独有的值*/
- new
- new
- staticclass
- publicvoid
- /*取得当前线程所需要的值*/
- staticclass
- publicvoid
- /*取得当前线程所需要的值*/
2.当存储的为对象时 就是数据集合 比如前台传过来的参数,每一个人传过来的 都是这个人独有的,才能保证数据准确性,抽取业务数据为一个对象
- class
- privatestaticnew
- private
- publicstatic
- if(null//当前线程无绑定的对象时,直接绑定一个新的对象
- new
- return
- private
- public
- return
- publicvoid
- this
把ThreadLocal 放在业务对象里面提现高内聚,实现的目的是每一个线程都有一个独立的ThreadLocalDemo对象。 使用的时候只需要 ThreadLocalDemo.getInstance()就可以得到当前线程的所需要的值。
- package
- /**
- publicclass
- publicstaticvoid
- for(int02
- newnew
- @Override
- publicvoid
- 10
- "name"
- new
- new
- staticclass
- publicvoid
- staticclass
- publicvoid
文章来源: ThreadLocal使用方法