gpt4 book ai didi

singleton - 如果多个线程尝试访问单例对象会发生什么

转载 作者:行者123 更新时间:2023-12-02 22:47:47 24 4
gpt4 key购买 nike

不是在实例化期间,而是在单例对象实例化完成后,如果两个或多个线程尝试访问同一个单例对象,会发生什么情况?特别是在单例对象需要花费大量时间来处理请求的情况下(比如说1分钟)...在这种情况下,如果例如,5个线程尝试访问同一个单例对象,结果会是什么?

附加问题:通常我们什么时候应该采用单例模式,什么时候应该避免它?

最佳答案

除非在单例中执行同步(锁定),否则答案是这样的:这是一个混战。

尽管单例确保在请求时仅使用对象的一个​​实例,但该模式本身并不本质上提供任何形式的线程安全性。这由实现者决定。

在您引用的特定情况下(使用长时间运行的方法),同步对使用类或对象级变量的任何方法的访问至关重要。如果不这样做,很可能会导致竞争条件。

祝你好运!

关于singleton - 如果多个线程尝试访问单例对象会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1322506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com