我有一个静态方法
public static void abc(String str) {
// some code
str = str + "s";
// some code
}
假设此方法同时被 100 个线程调用。
我认为 CPU 调度所有这些线程来执行这个静态方法。
让我们扩展执行请求。现在,大约有 100000 个线程同时调用这个静态方法。
如果是这样,这将是一个性能开销(与此方法是类成员的情况相比)。我说得对吗?
最佳答案
- 理论上,静态调用可以稍微高效一些,因为它不需要进行虚函数查找,而且还可以避免隐藏的“this”参数的开销。
- 在实践中,许多编译器无论如何都会优化它。
- 上下文切换线程的成本将远远超过静态与非静态方法调用造成的任何差异
关于java - 多线程中的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40546484/