论坛首页 编程语言技术论坛

Python单例模式

浏览 13330 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (8)
作者 正文
   发表时间:2011-01-24  
sydra 写道
不是很懂python,鄙人是做java的,很奇怪这个单例类,不会有并发性问题么?
如果有多个线程同时访问,有可能会产生多个实例的啊~


不会的, GIL 保证在一个时刻,只有一个线程在运行
0 请登录后投票
   发表时间:2011-01-25  
感觉像两妇女骂架,还挺带感的。喜欢python的,看了楼主鄙视java的言论,笑一下就可以了,喜欢java的,没有必要逛到这里找气受吧。这种东西,本就没有什么公论,还争吵个不休,都快过年了。。。
0 请登录后投票
   发表时间:2011-01-25  
Singleton模式一般是用metaclass实现的……这个做的不够漂亮。。。
0 请登录后投票
   发表时间: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
0 请登录后投票
   发表时间:2011-02-13  
Kabie 写道
Singleton模式一般是用metaclass实现的……这个做的不够漂亮。。。

还妄赐教,不知道如何写哟
0 请登录后投票
   发表时间:2011-04-18  
sydra 写道
不是很懂python,鄙人是做java的,很奇怪这个单例类,不会有并发性问题么?
如果有多个线程同时访问,有可能会产生多个实例的啊~


不会的,Python 有 GIL 作为全局锁,保证线程安全。除非访问了 IO 或者调用了 sleep ,Python 会释放锁而导致线程不安全,其他情况下都是可靠的。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics