方法的线程安全性调用“共享”静态常量属性

时间:2019-01-14 21:55:45

标签: swift multithreading thread-safety singleton

我有一个Swift类,它使用传统的Cocoa单例模式:一个静态shared常数和一个私有init,该共享常数只被调用一次。就像这样:

public class Foo {
    public static let shared = Foo()

    private init() { /* ... */ }

    public func bar() { /* ... */ }
    public func baz() { /* ... */ }
}

// Meanwhile, in multiple places upon multiple threads:

Foo.shared.bar()

Foo.shared.baz()

如果我有十二个线程在该常量上调用函数,它是否会暂停所有调用,直到该初始化程序完成,还是应该在这些实例函数中设置一些保护措施以等待初始化完成?

0 个答案:

没有答案