在 Java 中,哪些代码在多个线程之间共享,哪些代码被复制以用于一个特定线程?
如果考虑以下片段,那就更精确了
public void foo () {
int a = 0;
a++;
}
被多个线程并发执行时,每个线程会持有自己的变量a
副本还是在线程之间共享?
最佳答案
不,a
是局部变量。这意味着每次调用 foo
都会获得自己单独的变量 - 无论是在多个线程中还是在同一线程中递归。
请注意,这不是共享代码,而是共享数据。相同的代码将在所有线程中运行(很可能),但每次调用都将使用一组单独的局部变量。
关于java - 多线程间的共享数据和独有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20776662/