锁定老帖子 主题:Python单例模式
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (8)
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-24
sydra 写道 不是很懂python,鄙人是做java的,很奇怪这个单例类,不会有并发性问题么?
如果有多个线程同时访问,有可能会产生多个实例的啊~ 不会的, GIL 保证在一个时刻,只有一个线程在运行 |
|
返回顶楼 | |
发表时间:2011-01-25
感觉像两妇女骂架,还挺带感的。喜欢python的,看了楼主鄙视java的言论,笑一下就可以了,喜欢java的,没有必要逛到这里找气受吧。这种东西,本就没有什么公论,还争吵个不休,都快过年了。。。
|
|
返回顶楼 | |
发表时间:2011-01-25
Singleton模式一般是用metaclass实现的……这个做的不够漂亮。。。
|
|
返回顶楼 | |
发表时间:2011-02-04
mikewang 写道 sydra 写道 不是很懂python,鄙人是做java的,很奇怪这个单例类,不会有并发性问题么?
如果有多个线程同时访问,有可能会产生多个实例的啊~ 不会的, GIL 保证在一个时刻,只有一个线程在运行 没用的 if not AAA: BBB 假设两个线程T1和T2, T1执行完if准备执行BBB的时候,正好被切出, 此时T2进入,执行if判断,仍然是True,于是T2执行BBB, 之后T2挂起,T1被切入,继续执行BBB |
|
返回顶楼 | |
发表时间:2011-02-13
Kabie 写道 Singleton模式一般是用metaclass实现的……这个做的不够漂亮。。。 还妄赐教,不知道如何写哟 |
|
返回顶楼 | |
发表时间:2011-04-18
sydra 写道 不是很懂python,鄙人是做java的,很奇怪这个单例类,不会有并发性问题么?
如果有多个线程同时访问,有可能会产生多个实例的啊~ 不会的,Python 有 GIL 作为全局锁,保证线程安全。除非访问了 IO 或者调用了 sleep ,Python 会释放锁而导致线程不安全,其他情况下都是可靠的。 |
|
返回顶楼 | |