Java基础加强 线程范围内数据共享设计模式
来源:互联网 发布:淘宝凑单什么意思 编辑:程序博客网 时间:2024/06/05 06:52
线程范围内数据共享设计模式
获得某个类的实例,且该实例对象是与本线程相关的,则使用类似单利设计模式的ThreadLocal方法。
例如如下代码:
package Cn.itcast;
import java.util.Random;
public class ThreadLocalTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
ThreadLocalTest tlt=new ThreadLocalTest();
final A a=tlt.new A();
final B b=tlt.new B();
for(int i=0;i<2;i++){
new Thread(new Runnable(){
public void run(){
int age=new Random().nextInt();
System.out.println("线程:"+Thread.currentThread().getName()+"开始放入数据"+age);
ThreadInstance instanc=ThreadInstance.getThreadInstance();
instanc.setName(""+age);
instanc.setAge(age);
a.get();
b.get();
}
}).start();
}
}
class A{
public void get(){
ThreadInstance instanc=ThreadInstance.getThreadInstance();
System.out.println("线程"+Thread.currentThread().getName()+"在A中获得姓名为:"+instanc.getName()+"年龄为"+instanc.getAge());
}
}
class B{
public void get(){
ThreadInstance instanc=ThreadInstance.getThreadInstance();
System.out.println("线程"+Thread.currentThread().getName()+"在B中获得姓名为:"+instanc.getName()+"年龄为"+instanc.getAge());
}
}
}
class ThreadInstance{
private String name;
private int age;
private ThreadInstance(){}
static ThreadLocal<ThreadInstance> th=new ThreadLocal<ThreadInstance>();
public static ThreadInstance getThreadInstance(){
ThreadInstance instance=th.get();
if(instance==null){
instance=new ThreadInstance();
th.set(instance);
}
return instance;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
- Java基础加强 线程范围内数据共享设计模式
- Java基础:多线程之线程范围内的数据共享ThreadLocal
- java线程范围内的数据共享
- 【java并发】线程范围内共享数据
- 线程范围内共享数据
- 线程范围内数据共享
- 线程范围内共享数据
- 线程范围内共享数据
- java基础--线程03--实现线程范围内的共享变量
- Java基础——线程范围内的共享数据概念和作用
- Java基础——ThreadLocal实现线程范围内的数据共享
- ThreadLocal线程范围内共享数据
- 同一线程范围内数据共享
- 线程范围内共享数据(一)
- 线程范围内共享数据(二)
- 线程范围内的数据共享
- Java中如何实现单个线程范围内的数据共享
- java并发编程(4)--线程范围内的共享数据
- Codeforces Round #218 (Div. 2)
- 黑马程序员---java基础之day12-13
- 多线程访问共享对象和数据的方式
- 爬虫学习心得(一)
- java变量,初始化快,构造函数的执行顺序
- Java基础加强 线程范围内数据共享设计模式
- iOS面试题
- GMM的EM算法实现
- Java基础加强 交互线程
- uva 1335 - Beijing Guards(二分)
- EM算法
- 让Mysql在查询时区分大小写?
- c++温习日记 12-8 -引用与指针的区别
- WEB应用中资源文件的读取和常用配置文件