线程局部变量ThreadLocal

你。 提交于 2019-12-04 13:46:41

一般我们考虑的是在线程间共享变量的风险。 有时可能要避免共享变量, 使用 ThreadLocal 辅助类为各个线程提供各自的实例。

ThreadLocal<SimpleDateFormat> dateFormat = ThreadLocal.withInitial(() -> new SimpleDateFormat("yy-MM-dd"));
  • 在一个给定线程中首次调用 get 时, 会调用 initialValue 方法。 在此之后, get 方法会返回 属于当前线程的那个实例。

可以使用 ThreadLocal 辅助类为各个线程提供一个单独的生成器, 不过 JDK7 还另外 提供了一个便利类。 只需要做以下调用:

int random = ThreadLocalRandom.currentO.nextlnt(upperBound):
  • ThreadLocalRandom.current() 调用会返回特定于当前线程的 Random 类实例。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!