`

python: 一个线程安全的单例类

阅读更多
称之为单例类, 其实也是照搬Java/C++等强类型语言的概念,在python里实现起来总有怪怪的味道.
关乎设计模式,这里有往篇文章,有时间研读一下:
Design Patterns in Python
#! /usr/bin/env python
# -*- coding: utf-8 -*-

"""
$filename    : Logger.py
$Author      : idup2x@gmail.com
"""

import threading
import time

from Configer import Configer

class Logger(object):
    __mutex = threading.Lock()
    __wf = None

    def __init__():
        pass

    #@staticmethod
    #def __open_file():
        #if not Logger.__wf:
            #Logger.__wf = open(Configer.log_file, "w+")

    #@staticmethod
    #def close():
        #if Logger.__wf:
            #Logger.__wf.close()

    @staticmethod
    def log(msg, flag=0):
        Logger.__mutex.acquire()
        _cur_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) 
        try:
            print "%s " % _cur_time,
            print msg 
        except Exception, e:
            print "%s " % _cur_time,
            print "Logger's Exception-> ",
            print e
        Logger.__mutex.release()
分享到:
评论

相关推荐

    详解python实现线程安全的单例模式

    总结来说,Python实现线程安全的单例模式通常需要结合装饰器和线程锁来确保在多线程环境下只有一个实例存在。这里的实现方式是定义了两个装饰器,`Singleton`用于创建单例,`synchronized`用于实现线程同步。通过...

    Python面试宝典-基础篇-2020.docx

    装饰器是 Python 中非常有特色的语法,用一个函数去装饰另一个函数或类,为其添加额外的能力。我们可以使用 functools 模块中的 wraps 来实现单例模式。 ``` from functools import wraps def singleton(cls): "...

    Python单例模式实例详解

    Python中的单例模式是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。这种模式常用于管理共享资源,如数据库连接、配置对象等,以避免资源的重复创建和销毁,提高效率。 单例模式的...

    设计模式单例模式示例代码(python--c++)

    单例模式是软件设计模式中的一种经典模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下非常有用,比如控制特定资源的访问,或者在整个应用中只创建一次数据库连接等。 在C++...

    Singleton 单例模式的介绍以及解析

    线程安全是单例模式中的一个重要话题,尤其是在多线程环境下。如果不正确地实现单例模式,可能会导致多个线程同时创建类的实例,违反了单例模式的设计初衷。为了解决这个问题,我们可以采用以下几种策略: 1. **...

    Python中的单例模式的几种实现方式的及优化

    在Python编程中,单例模式是一种常见的设计模式,它的核心思想是确保一个类只能有一个实例,并提供一个全局访问点。这种模式在某些场景下非常有用,例如管理共享资源、配置对象或者缓存服务等。本篇文章将深入探讨...

    设计模式专题之(一)单例模式---设计模式单例模式模式示例代码(python--c++)

    单例模式是软件设计模式中的一种基础且广泛应用的模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在资源管理、配置对象、缓存等场景下非常常见,因为它可以避免因频繁创建和销毁对象而...

    Python单例模式的两种实现方法

    Python中的单例模式是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式在某些场景下非常有用,比如管理共享资源、配置对象或日志系统等。接下来,我们将详细介绍两种实现Python单例模式的...

    2. 单例模式1

    单例模式是一种设计模式,它的核心思想是确保一个类只有一个实例,并提供一个全局访问点,以便其他部分的代码可以方便地使用这个实例。单例模式的使用主要出于资源管理和线程安全的考虑。 1. **资源节省**:以日志...

    设计模式之单例模式

    5. **静态内部类(线程安全,延迟初始化)**:利用类加载机制保证初始化实例时只有一个线程,且实现了延迟加载。 ```java public class Singleton { private Singleton() {} private static class ...

    Python Programming: An Introduction to Computer Science

    - 单例模式:确保一个类只有一个实例。 - 观察者模式:定义对象间的一对多依赖关系。 ##### 4. 数据结构与算法 本书涵盖了常用的数据结构和算法,这对于理解和解决复杂问题至关重要。 - **数据结构**: - 数组...

    多线程下的singleton

    单例模式是一种设计模式,确保一个类只有一个实例,并提供一个全局访问点。在多线程环境中,如果不妥善处理,可能会导致多个线程创建多个实例,违背了单例模式的初衷。 首先,让我们理解单例模式的基本概念。单例...

    逆向传值之单例传值

    例如,面试官可能会问如何实现一个线程安全的单例,或者在单例模式下如何处理依赖注入,以了解开发者对并发编程和面向对象设计原则的掌握程度。 在具体实现上,单例模式通常有几种常见的构造方式: 1. 饿汉式:在类...

    Python七大类常见问题详解.rar

    Python类三种方法,函数传参,类与实例变量(一) Python迭代器生成器,私有变量及推导式(二) Python装饰器AOP 不定长参数 鸭子类型 重载(三) Python新式类 new init 单例模式与作用域(四) Python 进程线程协程 GIL ...

    Python 全面的面试题

    1. **单例模式**:在Python中,单例模式是一种设计模式,确保一个类只有一个实例,并提供一个全局访问点。这通常通过控制类的实例化过程实现,例如通过`__new__`方法。 - **使用__new__方法**:`__new__`是Python...

    单例模式讲解案例

    单例模式是软件设计模式中的一种,用于控制类的实例化过程,确保一个类在整个程序运行期间只有一个实例存在。这种模式常被用于管理共享资源,如数据库连接、线程池或者配置文件等,以减少系统资源的浪费并提高效率。...

    python单例模式的多种实现方法

    单例模式是一种常见的设计模式,其核心在于确保一个类仅有一个实例,并且该实例能够全局访问。这种模式在某些场景下非常有用,例如管理共享资源、配置管理或日志记录等场景。Python作为一种灵活的语言,提供了多种...

Global site tag (gtag.js) - Google Analytics