gpt4 book ai didi

java - Java 线程中的 ThreadLocal 与成员变量

转载 作者:行者123 更新时间:2023-11-30 06:53:23 25 4
gpt4 key购买 nike

我们可以像获取 ThreadLocal 那样获取对 Thread 成员变量的引用吗?

例如,假设我们使用计数器变量来计数 ThreadLocal 变量中线程处理的请求数量。考虑我们正在使用线程池执行器来重用线程。现在,每个线程都保留对 ThreadLocal 计数器变量的引用,并且可以在每次请求后增加自己的副本。以类似的方式,如果我在 Runnable 中有一个成员变量,我可以取回对它的引用吗?线程无论如何都会被重用。

最佳答案

if i have a Member variable inside a Runnable, can i get back a reference to it?

当您说“Runnable”时,您正在谈论一些实现Runnable 接口(interface)的对象。 Runnable 没有什么神奇之处,run() 方法也没有什么神奇之处。

Runnable 对象的成员变量就像任何其他对象的成员变量一样,您的代码以相同的方式访问它们。

<小时/>

P.S.,通常,当你在程序中看到ThreadLocal时,这意味着

  • 该程序曾经是单线程的,
  • 它将许多状态保存在静态变量中,
  • 有人事后才添加了多线程,并且
  • 为每个线程复制一些静态状态是有意义的。

我几乎不会在新程序中使用ThreadLocal,因为我努力不编写任何依赖于静态变量的代码,并且如果您使用ThreadLocal对于非静态数据,您可能使程序变得比需要的更加复杂。

关于java - Java 线程中的 ThreadLocal 与成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42289546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com