zoukankan      html  css  js  c++  java
  • ThreadLoacl 小记

    参考地址: https://www.cnblogs.com/dolphin0520/p/3920407.html

    ThreadLoacl 本地线程变量

        为线程创建一个副本, 一个内部类ThreadLoaclMap
        每个线程有自己的ThreadLocal 并作为ThreadLoaclMap的键
        使用前必须先set 在get

    package mall.test;
    
    /**
     * ThreadLocal 
     *         为线程创建一个副本, 一个内部类ThreadLoaclMap
     *         每个线程有自己的ThreadLocal 并作为ThreadLoaclMap的键
     *         使用前必须先set 在get
     * @author guo
     *
     */
    public class School {
    
        private static School school;
        private static ThreadLocal<School> threadLocal = new ThreadLocal<School>();
        
        private School(){
        }
        
        public static School instance() {
            School s = threadLocal.get();
            if(s == null) {
                school = new School();
                threadLocal.set(school);
            }
            return threadLocal.get();
        }
        
        public static void print(){
            System.out.println(Thread.currentThread().getName());
        }
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //打印出main
            School.instance().print();
            
            Thread t = new Thread(new Runnable() {
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    //打印出Thread-0
                    School.instance().print();
                }
            });
            t.start();
        }
    
    }

    常用的使用场景为 用来解决 数据库连接、Session管理等。

  • 相关阅读:
    4. Dictionary HashTable
    5.1. ISet HashSet
    5.2.ISet SortedSet
    6.1. String
    6.2. Encoding
    2.1. List
    1. 基础类型
    0.源代码代码分布情况
    0.2.比较接口Default
    Android获取应用启动时间
  • 原文地址:https://www.cnblogs.com/eason-d/p/9599675.html
Copyright © 2011-2022 走看看