java - 静态方法、新线程性能问题

标签 java multithreading static-methods

我对我的应用程序中许多 Controller /servlet 中使用的两种方法有两个问题:

1-在 util 类中调用静态方法或非静态方法(例如处理日期的方法,即获取当前时间、在时区之间转换)之间有什么区别,哪个更好? 2-直接在 Controller 中调用方法(包含太多逻辑,例如发送电子邮件)或在不同线程中运行该方法有什么区别?

最佳答案

1)

  • Utils 类通常没有任何与其关联的状态。他们只是有行为。因此,创建它们的“实例”确实没有多大意义。
  • 即使编译器不会提示,实例化 Util 类也会是一种误导性的编码。
  • 无状态 Utils 类是完全线程安全的。类方法,无论是否静态,都会被复制到每个线程堆栈帧,并且不会相互干扰。 Java Utils 类就是很好的例子。

2)

  • 如果您的方法非常耗时,那么使其异步调用是有意义的。

关于java - 静态方法、新线程性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3039764/

相关文章:

java - 如何在 Java 中使用 SHA-512 对密码进行哈希处理?

java - 在 Java 中使用 Jackson 创建 JSON 对象

Java 简单弹跳球、单线程、鼠标监听器、JFrame

java - 如何避免 jvm 在 jvm 容器中运行编译器线程

c# - 包装 API 以支持依赖注入(inject)

尝试绘制时出现java NullPointerException

java - 无法设置鼠标光标 JLayeredPane

java - 我如何针对单线程/多线程调整它?

php - 如何从 Eloquent 模型静态获取表名?

javascript - 在javascript中使用子类中的静态方法