zoukankan      html  css  js  c++  java
  • ThreadLocal的用法

    阿里巴巴 java 开发手册中推荐的 ThreadLocal 的用法:

    public class DateUtil {
        public static final ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>(){
            @Override
            protected DateFormat initialValue() {
                return new SimpleDateFormat("yyyy-MM-dd");
            }
        };
    }
    

    然后我们再要用到 DateFormat 对象的地方,这样调用:

    DateUtils.df.get().format(new Date());

    ThreadLocal 相当于每个线程A在创建的时候,已经为你创建好了一个 DateFormat,这个 DateFormat 在当前这个线程A中共享。其他线程B,再用到 DateFormat 的地方,也会创建一个 DateFormat 对象,这个对象会在线程 B 中共享,直到线程 B 结束。

    也就是说 ThreadLocal 的用法和我们自己 new 对象一样,然后将这个 new 的对象传递到各个方法中。但是到处传递的话,太麻烦了。这个时候,就应该用 ThreadLocal。

    因为数据源是公用的,所以将其设为ThreadLocal,其余线程就可以直接用了。

    如果要使用 ThreadLocal,通常定义为 private static 类型,在我看来最好是定义为 private static final 类型。

    详细介绍

  • 相关阅读:
    python解析本地HTML文件
    爬取潇湘书院首页侧边栏
    Python文件的读取写入操作
    Python错误和异常
    Python字典
    python列表
    电文加密小程序
    课后练习题随笔(一)
    Redis基础操作
    Django学习_BBS开发
  • 原文地址:https://www.cnblogs.com/bihanghang/p/10032820.html
Copyright © 2011-2022 走看看