我知道这是一个有点幼稚的问题,但我想了解java中多线程背后的基本工作原理。考虑下面的代码,假设 A 在主线程中执行,并开始执行在类 B 中定义的另一个工作线程。我想知道从 A 调用的 B.func1 和 B 的 run 方法是否可以并行执行?
public class A {
public static void main(String[] args) {
B obj = new B();
obj.start();
obj.func1();
}
}
public class B extends Thread {
public B() {
//constructor
}
public void run() {
while(true) {
//do somethings
}
}
public void func1() {
//do someotherthings
}
}
方法调用背后并没有什么魔力。如果从线程调用方法,则该方法将在完全相同的线程中调用。所以自从obj.func1()
被调用自main
,它将在主线程中运行。它属于哪个类或是否扩展并不重要Thread
.
新线程开始执行run
。从 run 等调用的所有内容都将并行执行main
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)