如果我使用threadlocal变量,那么每个线程都会获取该变量的本地副本。我的第一个问题是,如果每个线程都对变量进行了突变,那么突变后的值将仅保留在其本地副本中吗?还是在某个时候它也会尝试更新“全局变量”,而我们会遇到并发问题?
我的另一个问题是:如果我在一个方法中声明一个变量,那么每个在其自己的堆栈中执行该方法的线程都将获得自己的副本。那么,声明方法级别变量是否与使其成为线程局部变量相同?
第一个问题:每个线程都更新其线程局部变量的副本,线程之间没有共享全局状态。
第二个问题:如果您声明局部变量,它的行为类似于threadlocal-每个线程都有自己的副本,但是您没有全局访问权限(例如,在另一种方法中)-那是threadlocal有用的时候。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句