zoukankan      html  css  js  c++  java
  • ObjectC中实现共享单例模式的方法

    一个共享单例只是一个用类方法容易获得的特定实例,通常存储在一个静态变量中。有很多方法可以实现共享单例,但我的建议是使用Grand Central Dispatch(GCD):

    1 + (MYSingleton *)sharedSingleton { 
    2   static dispatch_once_t pred; 
    3   static MYSingleton *instance = nil; 
    4   dispatch_once(&pred, ^{instance = [[self alloc] init];}); 
    5   return instance; 
    6 }

    这样编写方便、速度快,而且线程安全。其他方法要在+sharedSingleton 中添加一个@synchronize 以达到线程安全的目的,但是这种做法在每次调用+sharedSingleton 时都会导致性能显著下降。另外,还可以使用+initialize ,但使用GCD的办法最简单。

  • 相关阅读:
    km算法
    HDU 1358
    HDU 3746
    CF 432D
    HDU 4725
    14年百度之星资格赛第四题
    AC自动机
    RMQ
    HDU 4635
    HDU 3667
  • 原文地址:https://www.cnblogs.com/crazypebble/p/3053205.html
Copyright © 2011-2022 走看看