Java 从特定线程调用方法是否会自动使其在单独的内核上运行?

Java 从特定线程调用方法是否会自动使其在单独的内核上运行?,java,multithreading,Java,Multithreading,例如,我创建了两个线程: ExampleThread t1 = new ExampleThread(); ExampleThread t2 = new ExampleThread(); t1.start(); t2.start(); 然后,每个线程中run()中的内容都将完成。但是,我知道我仍然可以打电话 t1.exampleMethod(); 在它的run()完成之后。这对它自己的核心有用吗 谢谢。首先,您不想扩展线程,而是想实现Runnable,事实上这样做可能有助于消除您的一些困

例如,我创建了两个线程:

ExampleThread t1 = new ExampleThread();   
ExampleThread t2 = new ExampleThread();
t1.start();
t2.start();
然后,每个线程中run()中的内容都将完成。但是,我知道我仍然可以打电话

t1.exampleMethod();
在它的run()完成之后。这对它自己的核心有用吗


谢谢。

首先,您不想扩展线程,而是想实现Runnable,事实上这样做可能有助于消除您的一些困惑,因为即使t1扩展了一个线程,您对方法的调用也将不会在该线程上运行,即t1线程,而会在调用它的线程中运行

还要注意的是,“线程运行完成后”,线程不再运行——它已完成、消失、停止

t1.exampleMethod();
这是一个普通的方法调用,将在同一线程中执行。(无新线程


这将创建一个新线程,该线程开始执行
run()
方法,完成后,它的工作就完成了。

忘记
t1.exampleMethod()
,即使
t1.run()
也不会在
t1
线程中运行

它们的行为与任何其他方法调用一样,没有什么特别之处,除非您调用
t1.start()


只有
t1.start()。
t1.start();