0
0 комментариев

Здравствуйте! Подскажите, пожалуйста относительно моей реализации одиночки. Реализую как рекомендуют pep-0318:
Итого, получается код, вида:

def singleton(cls):
    instance = {}
 
    def get_instance():
        if cls not in instance:
            instance[cls] = cls()
        return instance[cls]
    return get_instance()
 
@singleton
class MyClass:
      ******

Я никак не могу понять, почему работает мой код. Я экспериментировал с 10 потоками, которые вызывают один и тот же метод этого класса, метод отрабатывает по времени долго (4-5 сек. реального времени), но блокировок вызвать не получилось. Данная реализация является потокобезопасной? Если да, то почему?

Изменен статус публикации
Добавить комментарий