当前位置: 首页 > article >正文

《Java核心技术I》线程局部变量

线程局部变量

ThreadLocal辅助类为各个线程提供各自的实例。

public static final THreadLocal dateFormat

= ThreadLocal.withInitial(()->new SimpleDateFormat("yyyy-MM-dd"));

要访问具体的格式化方法,可以调用:

String dateStamp = dateFormat.get().format(new Date());

多线程中生成随机数也存在类似问题,java.util.Random是线程安全的,但如果多线程需要等待一个共享的随机数生成器,很低效。

可以用线程变量,Java7提供了一个便利类:

int random = ThreadLocalRandom.current().nextInt(upperBound);

java.lang.ThreadLocal 1.2

  • T get(),得到这个线程的当前值,如果是首次调用get,会调用initialize来得到这个值。
  • void set(T t),为这个线程设置新值。
  • void remove(),删除对应这个线程的值。
  • static ThreadLocal withInitial(Supplier supplier) 8,创建一个线程局部变量,其初始值通过调用给定的提供者生成。

java.util.concurrent.ThreadLocalRandom 7

  • static ThreadLocalRandom current(),返回特定于当前线程的Random类的实例。

http://www.kler.cn/a/427591.html

相关文章:

  • python包之click
  • 使用xtrabackup对MySQL5.7数据库进行物理备份
  • 四个人排序——c++选择结构提高
  • 【调试工具】USB 转 UART 适配器(USB 转 TTL)
  • 华为 Mate 70 系列智能手机将运行不兼容 Android 的鸿蒙
  • 深入解析汽车对自行车手纵向成人碰撞测试(CBLA)
  • CSS3 动画详解,介绍、实现与应用场景详解
  • Alogrithm:老鼠走迷官(一)
  • uwsgi与Django结合的多线程多进程详解
  • 亚马逊云科技re:Invent:生成式AI的最新进展
  • 时序预测算法TimeXer代码解析
  • 《深度学习模型的应用与发展:从基础到前沿》
  • 【PID】温控、调速的应用
  • 设计模式c++(二)
  • 深入浅出 Go 语言:理解包管理
  • maven常用知识详解3:聚合与继承
  • 2024年9月GESPC++二级真题解析
  • 基于Matlab卷积神经网络的交通标志识别系统研究与实现
  • AcWing 5843. 染色
  • 怎么获取键值对的键的数值?