关于Java中线程的澄清
我正在尝试用Java来理解一些基本的东西,需要关于线程的帮助 今天我遇到了一段代码,其中在for循环中创建了新线程,如下所示:关于Java中线程的澄清,java,multithreading,Java,Multithreading,我正在尝试用Java来理解一些基本的东西,需要关于线程的帮助 今天我遇到了一段代码,其中在for循环中创建了新线程,如下所示: public class TestThreads { public static void main(String args[]) { Thread t1=new Thread(); System.out.println("***************"+t1.getId()); for(int i=0;i<5;i++) {
public class TestThreads {
public static void main(String args[])
{
Thread t1=new Thread();
System.out.println("***************"+t1.getId());
for(int i=0;i<5;i++)
{
Thread t2= new Thread();
System.out.println("++++++++++++++++"+t2.getId());
System.out.println("++++++++++++++++"+t2.getName());
}
}
}
公共类测试线程{
公共静态void main(字符串参数[])
{
线程t1=新线程();
System.out.println(“**************”+t1.getId());
对于(inti=0;i您将对象与引用变量混淆
我假设t2.getId()和t2.getName()将打印相同的值,因为在循环的每次迭代中,新线程都被分配给相同的对象thread objectt2
否,正在将新线程对象分配给同一引用变量,t2
变量t2指的是分配给它的任何对象,变量名称在此上下文中没有意义,但对象引用才是真正重要的。由于您在for循环中更改了引用,因此对象的“名称”(如果它有名称字段)也将更改
我觉得充分理解这一关键区别,真正深入到Java OOPS编程的核心,是那些一旦实现的主要步骤之一,将极大地帮助程序员。您将对象与引用变量混淆了
我假设t2.getId()和t2.getName()将打印相同的值,因为在循环的每次迭代中,新线程都被分配给相同的对象thread objectt2
否,正在将新线程对象分配给同一引用变量,t2
变量t2指的是分配给它的任何对象,变量名称在此上下文中没有意义,但对象引用才是真正重要的。由于您在for循环中更改了引用,因此对象的“名称”(如果它有名称字段)也将更改
我觉得,充分理解这一关键区别,真正深入Java OOPS编程的核心,是那些一旦实现的主要步骤之一,将极大地帮助程序员。非常感谢澄清。这回答了我的问题。非常感谢澄清。这回答了我的问题