ThreadLocal类使用理解

为了此时保证多个线程可以在自己操作的时候有一个自己的空间,所以应该在保存有当前的线程对象,这样的类实际上就凑成了ThreadLocal类,这个类主要使用如下方法:

public void set(T value) 普通 设置传输数据
public T get() 普通 取得传输数据
public void remove() 普通 删除数据

保存每个线程的独立数据。

代码实现:

 1 package cn.demo;
 2 class Message{
 3     private String title;
 4     public void setTitle(String title){
 5         this.title = title;
 6     }
 7     public String getTitle(){
 8         return title;
 9     }
10 }
11 class Demo {
12     public void fun(){
13         Message msg = MyTran.get();
14         System.out.println(msg.getTitle());
15     }
16 }
17 class MyTran{
18     private static ThreadLocal<Message> threadlocal = new ThreadLocal<Message>();
19     public static void set(Message msg){
20         threadlocal.set(msg);
21     }
22     public static Message get(){
23         return threadlocal.get();
24     }
25 }
26 public class Test {
27     public static void main(String[] args) {
28         new Thread(new Runnable(){
29             public void run(){
30                 Message msg = new Message();
31                 msg.setTitle("我们好累啊");
32                 MyTran.set(msg);
33                 new Demo().fun();
34             }
35         }).start();
36         Message msg = new Message();
37         msg.setTitle("www.i.cnblogs/liyang31.com");
38         MyTran.set(msg);
39         new Demo().fun();
40     }
41 }

结果:

我们好累啊

www.i.cnblogs/liyang31.com

总结:利用ThreadLocal可以在多线程的开发环境之中,准确的在本线程对象操作时保存或取得所需要的一个对象内容。

posted on 2016-08-24 20:55  麦牧嘉禾  阅读(302)  评论(0编辑  收藏  举报

导航