文章详情页
python - 关于单例的线程安全问题
浏览:126日期:2022-07-25 18:05:33
问题描述
class Singleton(object): __instance = None def __new__(cls, *args, **kwargs):if not cls.__instance: cls.__instance = super(Singleton, cls).__new__(cls, *args, **kwargs)return cls.__instance if __name__ == ’__main__’: # 多线程中单例的使用 from threading import Thread def func():print(id(Singleton()))for index in range(10000): Thread(target=func).start()
上面试python中实现单例的一种方式,但是我们都知道这种实现方式不是线程安全的。上面代码中我自己写了测试代码,但是发现id输出都是一样的。这个就证明不了非线程安全的?我的问题是:如何写出可以证明这种实现不是线程安全的测试代码?
问题解答
回答1:本来单例模式就只能实例化1个对象,跟线程没有任何关系。即使是线程安全的,它也返回相同的id。
相关文章:
1. vim - docker中新的ubuntu12.04镜像,运行vi提示,找不到命名.2. PHP中的$this代表当前的类还是方法?3. PHP类封装的插入数据,总是插入不成功,返回false;4. phpadmin的数据库,可以设置自动变化时间的变量吗?就是不需要接收时间数据,自动变化5. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?6. 跟着课件一模一样的操作使用tp6,出现了错误7. PHP类中的$this8. phpstady在win10上运行9. javascript - 如何实现网页或者APP调用手机摄像头不保存照片到相册?10. css3动画 - Canvas、Css3、动画高手请进Html5问题请教
排行榜
