对象是否留在线程中
Do objects stay in the thread
如果我创建一个新线程
Thread thread = new Thread(new myRunnableClass());
thread.start();
在我做的线程中
new mySecondRunnableClass().run();
第二个可运行对象 class 现在会 运行 在第一个线程中吗?
new mySecondRunnableClass().run();
您只是在创建 Runnable
实例的新实例并在其上调用 run()
。它将在同一个线程中执行,即 Thread thread = new Thread(new myRunnableClass());
。如果您担心实例内存位置而不是它总是在堆上创建并且它的引用将在 thread
私有堆栈上。
will the second runnable class now be running inside the first thread?
没有"inside [a] thread"这样的地方。线程没有内部或外部。并且,特别是在 Java 中,线程甚至没有父线程或子线程。
线程只是。
如果你的程序的主线程启动了一个新的线程,那么你的程序就会有两个线程,而且这两个线程在各个方面都是peers。既不拥有对方,也不控制对方。
它们之间唯一的特殊关系是主线程必须知道新线程(因为毕竟是主线程启动的,)但新线程不一定知道主线程。它是否确实知道主线程完全取决于您。
如果第二个线程启动第三个线程...同样的处理。现在你的程序有三个线程,而且它们都是对等的。
如果我创建一个新线程
Thread thread = new Thread(new myRunnableClass());
thread.start();
在我做的线程中
new mySecondRunnableClass().run();
第二个可运行对象 class 现在会 运行 在第一个线程中吗?
new mySecondRunnableClass().run();
您只是在创建 Runnable
实例的新实例并在其上调用 run()
。它将在同一个线程中执行,即 Thread thread = new Thread(new myRunnableClass());
。如果您担心实例内存位置而不是它总是在堆上创建并且它的引用将在 thread
私有堆栈上。
will the second runnable class now be running inside the first thread?
没有"inside [a] thread"这样的地方。线程没有内部或外部。并且,特别是在 Java 中,线程甚至没有父线程或子线程。
线程只是。
如果你的程序的主线程启动了一个新的线程,那么你的程序就会有两个线程,而且这两个线程在各个方面都是peers。既不拥有对方,也不控制对方。
它们之间唯一的特殊关系是主线程必须知道新线程(因为毕竟是主线程启动的,)但新线程不一定知道主线程。它是否确实知道主线程完全取决于您。
如果第二个线程启动第三个线程...同样的处理。现在你的程序有三个线程,而且它们都是对等的。