当从外部访问方法时,Java线程的行为如何?

当从外部访问方法时,Java线程的行为如何?,java,Java,假设我有以下线程: public class MyThread { public void run() { while (true) { // do something forever } } } 然后,我实例化线程,如下所示: MyThread thread = new MyThread(); 如果我现在打电话怎么办 thread.performSomeFunction() 具体来说,performSomeFunct

假设我有以下线程:

public class MyThread {
    public void run() {
        while (true) {
            // do something forever
        }
    }
}
然后,我实例化线程,如下所示:

MyThread thread = new MyThread();
如果我现在打电话怎么办

thread.performSomeFunction()

具体来说,performSomeFunction如何与上面的无限循环交互?它必须等待循环睡眠吗?或者它们都可以“并发”运行吗?

如果从另一个线程调用了
线程.performSomeFunction()
,则它不必与
run()
方法中运行的无限循环抗衡。在本例中,您的
MyThread
实例被视为可以调用方法的另一个对象

请注意,在启动
线程
实例之前,无限循环不会启动

您可以通过在
run()
方法和
perfomrSomeFunction()
方法中放入以下行来测试这一点:

System.out.println("in [METHOD NAME]: " + Thread.currentThread().getName());
并用实际的方法名称替换
[方法名称]