为什么在JVM中运行的每个线程中一次只能有一个方法处于活动状态?

时间:2011-11-27 19:28:18

标签: java multithreading jvm

有人可以解释为什么在JVM中运行的每个线程中,一次只有一个方法可以处于活动状态吗?为什么不是两三个,而只有一个?

4 个答案:

答案 0 :(得分:6)

根据定义,线程是以顺序方式执行代码的东西。所以没有办法在一个线程中执行多个方法。如果要并行执行两个或多个方法,请使用多个线程。您可能需要查看Java concurrency tutorial以了解线程的基础知识。

答案 1 :(得分:3)

每个线程同步运行代码。一旦线程完成当前的工作分配,线程只能完成更多的工作。

至于为什么一次只能有一个方法'活动',方法可以调用其他方法或返回。一旦方法返回,它显然不再活动,类似地,一旦方法调用另一个方法,被调用的方法就变为活动方法。

答案 2 :(得分:2)

线程存在的全部原因是,您可以同时执行多个操作。每个线程都有自己的堆栈和程序计数器,因此它可以随时在代码中的一个位置。

答案 3 :(得分:2)

每个时钟周期有多个指令,方法内联,CPU流水线操作和指令重新排序,单个线程可以同时执行多个方法的指令,但只有当你看不出任何区别时才应该这样做。即想法是在不改变行为的情况下提高绩效。