我知道如果我在主线程的循环中创建了一些变量,它会创建一个,然后在下一次迭代中,它会创建另一个同名的变量,并将继续直到循环完成。没有问题,因为每次迭代中,创建的变量都消失了,所以我们可以创建另一个变量。
但是如果我在循环中创建了同名的线程会怎么样呢?线程不会同时“终止”。那么为什么会这样呢?我觉得我应该把JVM创建变量的工作和操作系统处理线程的工作分开,但是我想听到一个适当的解释。
for (int i = 0; i < 10; i++) {
MyFirstThread thread = new MyFirstThread();
thread.start();
}
2条答案
按热度按时间fgw7neuy1#
您只需将对新自定义对象
MyFirstThread
的引用赋给新变量thread
。在循环的每个循环中,变量thread
超出范围,您将失去对MyFirstThread
和新创建的变量thread
的引用。