码迷,mamicode.com
首页 > 编程语言 > 详细

java ThreadLocal

时间:2014-07-29 14:40:08      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   java   color   使用   os   strong   

public class ThreadLocal<T> extends Object
该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 getset 方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal 实例通常是类中的 private static 字段,它们希望将状态与某一个线程(例如,用户 ID 或事务 ID)相关联。
方法摘要
 Tget()           返回此线程局部变量的当前线程副本中的值。
protected  TinitialValue()           返回此线程局部变量的当前线程的“初始值”。
 voidremove()           移除此线程局部变量当前线程的值。
 voidset(T value)           将此线程局部变量的当前线程副本中的值设置为指定值。
 
 
 
实验代码如下:
abstract class Base
{
	abstract public int get();
	abstract public void set(int value);
}

class AA extends Base
{
	ThreadLocal<Integer> i=new ThreadLocal<Integer>()
			{
				public Integer initialValue()
				{
					return 0;
				}
			};
	public int get()
	{
		return i.get();
	}
	public void set(int value)
	{
		this.i.set(value);
	}
	
}

class BB extends Base
{
	int i;
	public int get()
	{
		return this.i;
	}
	public void set(int value)
	{
		this.i=value;
	}
}

class Test implements Runnable
{
	Base b;
	public Test(Base b)
	{
		this.b=b;
	}
	@Override
	public void run()
	{
		for(int i=0;i<3;i++)
		{
			this.b.set(this.b.get()+10);
			System.out.println(	Thread.currentThread().toString()+this.b.get());
		}
	}
}
public class ThreadLocalTest {

	/**
	 * @param args
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) throws InterruptedException {
		System.out.println("===============使用ThreadLocal结果如下:==================");
		AA aa=new AA();
		Thread t11=new Thread(new Test(aa));
		Thread t12=new Thread(new Test(aa));
		Thread t13=new Thread(new Test(aa));
		t11.start();
		t12.start();
		t13.start();
		
		Thread.sleep(1000);
		System.out.println("===============不使用ThreadLocal结果如下:==================");
		
		BB bb=new BB();
		Thread t21=new Thread(new Test(bb));
		Thread t22=new Thread(new Test(bb));
		Thread t23=new Thread(new Test(bb));
		t21.start();
		t22.start();
		t23.start();

	}

}
 
运行结果:
bubuko.com,布布扣

java ThreadLocal,布布扣,bubuko.com

java ThreadLocal

标签:style   blog   http   java   color   使用   os   strong   

原文地址:http://blog.csdn.net/ylb125/article/details/38236071

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!