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的办法最简单。

  • 相关阅读:
    linksys wrt160nv3 刷dd-wrt固件
    win2008 r2 远程桌面问题
    windows server 2008 集成raid卡驱动
    gitlab-ce
    git
    批量发布jar包springboot应用
    gradle
    lvs
    rsyslog
    特殊权限
  • 原文地址:https://www.cnblogs.com/crazypebble/p/3053205.html
Copyright © 2011-2022 走看看