文章详情页
python - 关于单例的线程安全问题
浏览:231日期: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. windows-7 - Win7中Vmware Workstatoin与Xampp中Apache服务器端口冲突?2. Browser-sync安装失败问题3. html5 - api.douban.com/v2/movie/in_theaters?start=0&count=3 不在以下合法域名列表中4. python - 怎样在linux下开发flask web应用时查看代码出错(traceback)的地方。5. mysql - 数据库字段命名问题,新人,求解6. python3.x - python多进程,不能在同一窗口吗7. python - pip install出现下面图中的报错 什么原因?8. 取不出SQL得到的当前页9. python - nginx为什么不能反代图片?10. mysql连表排序
排行榜

网公网安备