⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threadlocal.java

📁 有关java学习技巧的课件
💻 JAVA
字号:
package onlyfun.caterpillar;

import java.util.*;

public class ThreadLocal<T> {
    // 取得一个同步化的Map对象
    private Map<Thread, T> storage = 
             Collections.synchronizedMap(new HashMap<Thread, T>());

    public T get() {
        // 取得目前执行get()方法的线程
        Thread current = Thread.currentThread();
        // 根据线程取得线程自有的资源
        T t = storage.get(current);

        // 如果还没有线程专用的资源空间
        // 则建立一个新的空间

        if(t == null && 
           !storage.containsKey(current)) {
            t = initialValue();
            storage.put(current, t);
        }

        return t;
    }

    public void set(T t) {
        storage.put(Thread.currentThread(), t);
    }

    public T initialValue() {
        return null;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -