当从外部访问方法时,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());
并用实际的方法名称替换[方法名称]