文章详情页
python - 关于单例的线程安全问题
浏览:141日期: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. javascript - weex和node,js到底是怎样一个关系呢?2. angular.js - ng-grid 和tabset一起用时,grid width默认特别小3. python - 搜索大文件(20G左右)4. Android-studio导入.so库问题?5. node.js - 急急急!node request如何获取响应中cookie的值呢?6. python - 有哪些预测算法可以根据实时增量数据更新算法并预测后续数据?7. javascript - 小米浏览器中,图片导致fixed定位的元素无法显示8. python - 我想把下面代码中的多余空白行去除该怎么做,如何用正则实现9. 用tp5框架写sql语句10. javascript - ajax 图片文件与文本框数据一起提交上传处理
排行榜
