码迷,mamicode.com
首页 > 其他好文 > 详细

ThreadLocal学习

时间:2018-01-03 21:13:45      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:second   port   set   src   over   name   nts   tin   技术   

 

package test;

public class Student {

	private int age;

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

}

  

package test;

public class StudentUtil {

	private static ThreadLocal<Student> studentThreadLocal = new ThreadLocal<Student>();

	public static Student getStudent() {
		Student student = studentThreadLocal.get();
		if (student == null) {
			student = new Student();
			studentThreadLocal.set(student);
		}
		return student;
	}

}

 

package test;

import java.util.Random;

public class ThreadLocalTest implements Runnable {

	@Override
	public void run() {
		String threadName = Thread.currentThread().getName();
		System.err.println(threadName + " is running");
		int age = new Random().nextInt(100);
		System.err.println(threadName + " set age:" + age);
		Student student = StudentUtil.getStudent();
		student.setAge(age);
		System.out.println(threadName + " is first get age: " + student.getAge());
		try {
			Thread.sleep(10000);
		} catch (InterruptedException e) {

		}
		System.out.println(threadName + " is second get age: " + student.getAge());

	}

}

  

package test;

public class Main {

	public static void main(String[] args) {
		for (int i = 0; i < 5; i++) {
			new Thread(new ThreadLocalTest()).start();
		}
	}

}

  

运行结果

技术分享图片

 

ThreadLocal学习

标签:second   port   set   src   over   name   nts   tin   技术   

原文地址:https://www.cnblogs.com/zcs201093189/p/8185222.html

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