gpt4 book ai didi

java - 线程局部变量与方法级变量有何不同

转载 作者:搜寻专家 更新时间:2023-11-01 02:27:26 24 4
gpt4 key购买 nike

如果我使用一个线程局部变量,那么每个线程都会得到该变量的一个本地副本。我的第一个问题是,如果每个线程都对变量进行变异,变异的值是否只会保留在其本地副本中?或者在某些时候它会尝试更新“全局变量”,我们会遇到并发问题吗?

我的另一个问题是:如果我在一个方法中声明一个变量,那么在它自己的堆栈中执行该方法的每个线程都会得到它自己的副本。那么声明一个方法级变量是否与使其成为线程局部变量相同?

最佳答案

第一个问题:每个线程更新自己的线程局部变量副本,线程之间不共享全局状态。

第二个问题:如果您声明局部变量,它的行为类似于 threadlocal - 每个线程都有自己的副本,但您没有全局访问权限,例如在另一种方法中 - 这就是 threadlocal 有用的时候。

关于java - 线程局部变量与方法级变量有何不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18512999/

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