我想知道在http://code.activestate.com/recipes/52558-the-singleton-pattern-implemented-with-python/之后实现单例类,但是想知道任何(b)锁定问题.我的代码假设在达到一定数量的缓存元素或用户完成特定的执行调用时,使用cursor.executemany(SQL,list-of-params)缓存SQL语句并执行所有缓存的语句.实现单例是假设可以在应用程序范围内缓存语句,但我担心会遇到(b)锁定问题.
有什么想法吗?
解决方法:
通过避免延迟初始化,阻塞问题将消失.在初始化与数据库的连接的模块中,导入包含单例的模块,然后立即创建未存储在变量中的单例实例.
#Do Database Initialization
import MySingleton
MySingleton()
#Allow threads to be created