Java:静态工厂方法和线程安全

标签 java

我想通过静态工厂方法获取一个对象,比如

Person p = Person.fromName("Jack");

class Person {
    public static Person fromName(String name){
        return new Person(name);
    }
}

但是fromName()方法不是线程安全的,(fromName()只是一个例子,这种方法在我的程序中运行时会报错)但是,如果synchronize这个方法效率很低,因为多个线程应该调用这个方法并发。有什么修复建议吗?

最佳答案

如果您的代码在多个线程中并发执行是不安全的,但您想从多个线程中调用它,听起来您实际上只有两个选择:

  • 让它成为线程安全的
  • 利用同步化序列化调用

您没有提供任何信息来表明哪一个最适合您的情况。 (您是否测量过同步的性能影响?您是否尝试使其成为线程安全的?)

关于Java:静态工厂方法和线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9904633/

相关文章:

java - 当用户未连接到互联网时写入 firebase 数据

java - CookieHandler 还是 org.apache.http.cookie 哪种方式更好?

java - TestNG DataProvider 的 Ant 构建编码错误

java - java中的错误SQL : Illegal operation on empty result set

java - 类型不匹配 : cannot convert from Item to Item

c# - 将 MIDI 事件添加到时钟 - Java

java - Joda-Time、夏令时更改和日期时间解析

java - 存储值不起作用?

java - 如何使用 apache poi 增加 excel 中的行数

java - 如何更改按钮事件Java的框架