文章详情页
python - 关于单例的线程安全问题
浏览:125日期: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 - node引入文件路径中的@是什么意思?2. javascript - Angular利用 broadcast和 on实现页面跳转并且传递数据 但是跳转后收不到数据3. java - 图片上传后,立即访问出现404,重新部署项目后正常可以访问4. css - chrome浏览器input记录上次cookie信息后,有个黄色背景~如何去除!5. javascript - easyui textbox绑定onchange事件不能获取最新的文本框的值6. javascript - Jquery click()事件的禁用7. 单元格本来是写文字的地方插入背景图片,这种方式正确吗?8. html - css 文件内,有的样式没调用, 有没有工具删除这部分没调用的内容?9. PHP类中的$this10. javascript - 请教如何获取百度贴吧新增的两个加密参数
排行榜
