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();