每天一例多线程[day11]-----ThreadLocal

每天一例多线程[day11]-----ThreadLocal

 
  1. package com.jeff.base.conn010;

  2.  
  3. public class ConnThreadLocal {

  4.  
  5. public static ThreadLocal<String> th = new ThreadLocal<String>();

  6.  
  7. public void setTh(String value){

  8. th.set(value);

  9. }

  10. public void getTh(){

  11. System.out.println(Thread.currentThread().getName() + ":" + this.th.get());

  12. }

  13.  
  14. public static void main(String[] args) throws InterruptedException {

  15.  
  16. final ConnThreadLocal ct = new ConnThreadLocal();

  17. Thread t1 = new Thread(new Runnable() {

  18. @Override

  19. public void run() {

  20. ct.setTh("张三");

  21. ct.getTh();

  22. }

  23. }, "t1");

  24.  
  25. Thread t2 = new Thread(new Runnable() {

  26. @Override

  27. public void run() {

  28. try {

  29. Thread.sleep(1000);

  30. ct.getTh();

  31. } catch (InterruptedException e) {

  32. e.printStackTrace();

  33. }

  34. }

  35. }, "t2");

  36.  
  37. t1.start();

  38. t2.start();

  39. }

  40.  

打印结果:

 
  1. t1:张三

  2. t2:null

这个例子很简单,就是t1设置了ThreadLocal变量,可以获取得到,而t2获取为null,因为对ThreadLocal来说,其放置的变量时相对于每个线程独立一份。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值