public class ThreadLocalTest {
public static void main(String[] args) throws InterruptedException {
for(int i=0;i<10;i++)
{
ThreadT t=new ThreadT();
t.start();
}
}
}
class ThreadT extends Thread
{
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
Student s=ThreadLocalStudent.local.get();
s.name=this.getId()+"";
ThreadLocalStudent.local.set(s);//设置本线程对应的Student类对象的属性值
System.out.println(ThreadLocalStudent.local.get().getName() +" "+ThreadLocalStudent.local.get().getPwd());
ThreadLocalStudent.local.remove();//删除本线程对相应的Student对象
}
}
class ThreadLocalStudent
{
public static final ThreadLocal<Student> local=new ThreadLocal<Student>(){
protected Student initialValue() {// 如果当前线程没有设置Student的值,返回默认设置的Student
Student s=new Student();
s.setName("xx");
s.setPwd("xx");
return s;
};
};
}
class Student {
String name;
String pwd;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}ThreadLocal简单举例
最新推荐文章于 2024-11-11 00:02:27 发布
本文提供了一个使用 Java 的 ThreadLocal 类实现线程安全的数据共享示例。通过创建 ThreadLocal 对象并为每个线程分配独立的 Student 实例,确保了即使在多线程环境中也不会发生数据冲突。
1913

被折叠的 条评论
为什么被折叠?



