package TestThreadLocal;
public class TestThreadLocal {
public static void main(String[] args) {
//启动一个线程,也对Message类进行设置输出
new Thread(new Runnable(){
public void run() {
Message msg = new Message();
msg.setTitle("www.liukaiyi.com");
MyThread.set(msg);
new Demo().fun();
}
}).start();
Message msg = new Message();
msg.setTitle("www.baidu.com");
MyThread.set(msg);
new Demo().fun();
}
}
class Message{ //创建Message类,实现基本功能
private String title;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
class MyThread{ //MyThread类内实现ThreadLocal类的对象初始化功能
public static ThreadLocal<Message> threadlocal = new ThreadLocal<Message>();
//调用ThreadLocal类中的getset方法
public static Message get() {
return threadlocal.get();
}
public static void set(Message msg) {
threadlocal.set(msg);
}
}
class Demo{
public void fun() { //实现Message里的getTitle功能
Message msg = MyThread.get();
System.out.println(msg.getTitle());
}
}
Thread代替引用传递,利用ThreadLocal来为每一个线程保留自己的空间
最新推荐文章于 2024-07-26 20:01:27 发布