zoukankan      html  css  js  c++  java
  • ThreadLocal

    ThreadLocal通常用在一个类的成员上,多个线程访问它时,每个线程都有自己的副本,互不干扰。

    在Spring中把Connection放到了ThreadLocal中。

    ThreadLocal类只有三个方法:

    void set(T value):保存值

    T get():获取值

    void remove():移除值

     1 package com.itcast.thread;
     2 
     3 import java.util.HashMap;
     4 import java.util.Map;
     5 
     6 import org.junit.Test;
     7 
     8 /**
     9  * ThreadLocal对象的用法
    10  * @author hp
    11  *
    12  */
    13 public class Demo1 {
    14     @Test
    15     public void fun1() {
    16         ThreadLocal<String> t1=new ThreadLocal<String>();
    17         t1.set("hello");
    18         String s=t1.get();
    19         t1.remove();
    20         System.out.println(s);
    21     }
    22 }
    23 //ThreadLocal内部其实是个Map来保存数据。它内部使用当前线程作为键key。
    24 class TL<T> {
    25     private Map<Thread,T> map=new HashMap<Thread,T>();
    26     
    27     public void set(T data) {
    28         map.put(Thread.currentThread(), data);
    29     }
    30     public T get() {
    31         return map.get(Thread.currentThread());
    32     }
    33     public void remove() {
    34         map.remove(Thread.currentThread());
    35     }
    36 }
  • 相关阅读:
    iota妙用
    io
    http
    gosched
    go设置使用多少个cpu
    go协程的特点
    go条件变量同步机制
    Go奇技淫巧
    U5首次登录
    Maven安装中的问题
  • 原文地址:https://www.cnblogs.com/hengzhezou/p/11154803.html
Copyright © 2011-2022 走看看