首页 > 编程语言 > 详细

手写自己的ThreadLocal(线程局部变量)

时间:2018-01-31 10:54:12      阅读:283      评论:0      收藏:0      [点我收藏+]

ThreadLocal对象通常用于防止对可变的单实例变量或全局变量进行共享。

package com.lxc.tet;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class MyThreadLocal<T> {
    private Map<Thread,T> map = new ConcurrentHashMap<Thread, T>();
    
    protected T initialValue(){
        return null;
    }
    
    public void set(T value){
        map.put(Thread.currentThread(), value);
    }
    
    public T get(){
        T result = null;
        result = map.get(Thread.currentThread());
        if(result==null && !map.containsKey(Thread.currentThread())){
            result=initialValue();
            set(result);
        }
        return result;
    }
    
    public void remove(){
        map.remove(Thread.currentThread());
    }
}

 

手写自己的ThreadLocal(线程局部变量)

原文:https://www.cnblogs.com/lxcmyf/p/8390655.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!