首页 > 代码库 > jdk src 学习 Threadlocal
jdk src 学习 Threadlocal
示例:
import java.io.Serializable;public class TestThreadLocal implements Serializable { /** * */ private static final long serialVersionUID = -1279921928557717157L; int age; public static void main(String[] argv) throws Exception { TestThreadLocal tt = new TestThreadLocal(); Testthread t1 = new Testthread(tt); Testthread t2 = new Testthread(tt); Testthread t3 = new Testthread(tt); t1.start(); t2.start(); t3.start(); } static int ii = 0;// static Integer ii = 0; // public Integer getIi() {// 这个方式不行 // ii ++; // return ii; // } public Integer getIi() { // tl.set( ii ++ ); // 这个方式也不行, 必须要下面的方式。 tl.set(tl.get() + 1); return tl.get(); } /** * { } 内部的初始化是必须的。 否则出现 nullpointexception */ ThreadLocal<Integer> tl = new ThreadLocal<Integer>() { protected Integer initialValue() { ii = 0; return ii; }; };}class Testthread extends Thread { TestThreadLocal ttl; public Testthread(TestThreadLocal ttl) { this.ttl = ttl; } @Override public void run() { String name2 = Thread.currentThread().getName(); for (int i = 0; i < 3; i++) { System.out.println(" name " + name2 + ttl.getIi()); } }}
ThreadLocal 的作用在于,将某些变量绑定到线程中去, 提供一种,线程安全的方式操作某些变量。
jdk src 学习 Threadlocal
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。