【发布时间】:2022-01-01 23:00:41
【问题描述】:
假设我有一个具有两种方法的可运行类:
class ExampleClass implements Runnable {
public void shutdown()
{
currentThread().interrupt();
}
public void run(){
while(!currentThread().isInterrupted()){
System.out.println("thread is running...");
}
}
然后我去像这样在某个地方实现这个类并将它传递给一个线程:
ExampleClass object = new ExampleClass();
Thread sideThread = new Thread( object, "Side Thread");
thread.start();
object.shutdown();
所有这些object 和它的所有方法会在sideThread 上运行还是只是在side thread 上object 的run() 方法?
即当我调用 shutdown() 时,它实际上会中断 sideThread 还是只会在实例化对象的主线程上中断?
【问题讨论】:
-
run() 仅在您编写代码时在单独的线程上运行。 run() 可以并且经常在同一个线程上调用。这不是魔法,它只是一种方法。
标签: java multithreading runnable