程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> objective c - 單例模式(多線程)

objective c - 單例模式(多線程)

編輯:關於C語言

objective c - 單例模式(多線程)


//基於gcd的單例模式

static Type *_instances;

+ (id)allocWithZone:(NSZone *)zone
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken,^{
    _instances = [super allocWithZone:zone];
});
     return _instances;
}
//創建一個獲取單例的方法
+ (Type *)sharedInstances
{
    if(_instances == nil){
       _instances = [[self alloc] init];
    }
    return _instances;
}


並且所有讀取單例的地方都要用@synchronized “加鎖”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved