java - 如果一个类有一个内部类并且内部类运行一个线程,那么内部类线程是否彼此共享外部类的相同字段?
问题描述
基本上,如果我有代码:
public class Outer {
public int counter = 0;
public void makeNewThread() {
Thread t1 = new Thread(new Inner());
t1.start();
}
private class Inner implements Runnable {
public void run() { //do stuff involving counter... }
}
}
每次调用 makeNewThread() 时,每个线程都会有自己的计数器版本,还是它们都共享相同版本的计数器?我会假设它们都将共享相同的版本,因为它是一个内部类,但是每个线程都有自己的堆栈,所以我不确定。
解决方案
他们将共享相同的counter
.
推荐阅读
- asp.net-core - MSB4018 “GenerateEmbeddedResourcesManifest”任务意外失败
- google-apps-script - 使用 Google Apps 脚本在 Google 表单中的多项选择项中插入图像
- python-3.x - 美汤元素未发现异常
- officer - 与记者相比,官员似乎很慢
- javascript - javascript if(-1) {...statement...} 计算结果为 true
- python - 有人能告诉我这个代码有什么问题吗?
- vuejs2 - Vue.js - 父 <-> 插槽通信
- ios - Swift UnsafeMutableRawPointer 错误
- php - PHP查找并替换由管道符号分隔的输入文本给出的多个单词
- javascript - CleanWebpackPlugin 不让我重建